Varnish

Uit Wikipedia, de vrije encyclopedie
Varnish
Ontwikkelaar(s) Poul-Henning Kamp, Redpill-Linpro, Varnish Software
Uitgebracht 2005 (18 jaar)
Recentste versie 7.4.2 (13 november 2023)[1] Bewerken op Wikidata
Besturingssysteem Unixachtig besturingssysteem
Geschreven in C
Categorie HTTP-accelerator
Licentie(s) Two-clause BSD-licentie
Versiebeheer
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 | brontekst 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 werden de steun, ontwikkeling en het 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,[2][3] Varnish 2.0 in 2008,[4] Varnish 3.0 in 2011[5] en Varnish 4.0 in 2014.[6]

Architectuur[bewerken | brontekst 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 | brontekst 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 | brontekst bewerken]

Externe links[bewerken | brontekst bewerken]