Varnish
Varnish | ||||
---|---|---|---|---|
Ontwikkelaar(s) | Poul-Henning Kamp, Redpill-Linpro, Varnish Software | |||
Uitgebracht | 2005 (18 jaar) | |||
Recentste versie | 7.5.0 (18 maart 2024)[1] | |||
Besturingssysteem | Unixachtig besturingssysteem | |||
Geschreven in | C | |||
Categorie | HTTP-accelerator | |||
Licentie(s) | Two-clause BSD-licentie | |||
Versiebeheer | Officiële broncode | |||
Website | Officiële website | |||
|
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]- Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Varnish_(software) op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.