Varnish

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Varnish
Ontwikkelaar Poul-Henning Kamp, Redpill-Linpro, Varnish Software
Recentste versie 5.1.2 / 4.1.7 
(7 april 2017 / 28 juni 2017)
Status Actief
Besturingssysteem BSD, Linux, Unix
Geschreven in C
Categorie HTTP-accelerator
Licentie Two-clause BSD-licentie
Website Officiële website
Portaal  Portaalicoon   Informatica
Vrije software

Varnish is een HTTP-accelerator, ontworpen voor het cachen van dynamische websites. In tegenstelling tot webservers zoals Apache en nginx, en andere proxyservers zoals Squid, is Varnish slechts een proxyserver (met uitsluitend ondersteuning voor het HTTP-protocol). Varnish wordt gebruikt door bekende websites als Wikipedia, The New York Times, Facebook, Twitter, Vimeo en Tumblr.

Geschiedenis[bewerken]

De ontwikkeling van Varnish werd gestart door de Noorse tabbloid nieuwskrant Verdens Gang. De belangrijkste ontwikkelaar van Varnish is Poul-Henning Kamp, een bekende FreeBSD-ontwikkelaar. Management, de infrastructuur en hulp bij de ontwikkeling van Varnish werd gegeven door het eveneens Noorse Linpro, een bedrijf dat advies geeft over Linux. Later werd de steun, ontwikkeling en management overgedragen aan Varnish Software.

Varnish is open-source en is beschikbaar onder een two-clause BSD-licentie. Versie 1.0 van Varnish kwam uit in 2006,[1][2] Varnish 2.0 in 2008,[3] Varnish 3.0 in 2011[4] en Varnish 4.0 in 2014.[5]

Architectuur[bewerken]

Varnish slaat data op in het virtuele geheugen en geeft het besturingssysteem de taak om te bepalen wat opgeslagen blijft in het geheugen en wat opgeslagen wordt op de schijf.

Varnish maakt veel gebruik van threads, waarbij elke verbinding wordt afgehandeld door een workthread. Wanneer de limiet van actieve worker threads is bereikt, worden inkomende verbindingen in een overflow-wachtrij geplaatst; inkomende verbindingen worden geweigerd.

Men kan Varnish configuren door middel van de Varnish Configuration Language (VCL). Hierdoor kan men zelf bepalen wat er met individuele verzoeken wordt gedaan. Wanneer een VCL-script wordt geladen wordt deze omgezet naar C en gecompileerd door een gedeeld object van de door het systeem gebruikte compiler, om vervolgens gelijk in Varnish geladen te worden zonder een herstart van de service.

Andere functies[bewerken]

  • Plugin-ondersteuning met Varnish-modules
  • Gzip-compressie en decompressie
  • HTTP-streaming "pass & fetch"
  • Experimentele ondersteuning voor blijvende opslag, zonder het LRU-cachealggoritme (Least Recently Used) te gebruiken

Zie ook[bewerken]

Externe links[bewerken]