Varnish

from Wikipedia, the free encyclopedia
Varnish
Basic data

Maintainer Varnish software
developer Poul-Henning Kamp , Linpro , Varnish Software
Publishing year 2005
Current  version 6.3.1
( October 21, 2019 )
operating system Unix
programming language C.
category Cache , HTTP accelerator
License BSD
German speaking No
varnish-cache.org

Varnish is a cache for dynamic web pages with a lot of content. Unlike other reverse proxies , which often originated from client-side proxies or servers, Varnish was designed from the ground up as a reverse proxy. Varnish is used by well-known websites such as TAZ , Facebook , Twitter , SoundCloud , eBay , The New York Times , The Hindu , Vimeo , Die Zeit , Chefkoch.de and Wikipedia .

Emergence

The project was initiated by the online branch of the Norwegian tabloid Verdens Gang . The architect and main developer is the independent Danish software developer Poul-Henning Kamp . Management, infrastructure and additional development were originally provided by the Norwegian Linux consultancy Linpro . Varnish support, management and development was later outsourced to a separate company, Varnish Software .

Varnish is free software that is under the BSD license . Commercial support is offered by Varnish Software, among others.

Versions

version Year of publication Notes / references
1.0 2006
2.0 2008
3.0 2011
4.0 2014
5.0 2016
6.0 2018

architecture

Varnish stores data in virtual memory and lets the operating system decide what to keep in main memory and what to move to the hard drive. This helps avoid situations in which the operating system begins to cache data while the application is writing it to the hard drive.

In addition, Varnish is strongly thread-based . Each connection to a client is treated as a separate worker thread. If the preset limit of active worker threads is reached, incoming connections are placed in an overflow queue. Incoming connections are only rejected when the preset limit of this queue is reached.

The main configuration mechanism is the Varnish Configuration Language (VCL) , a domain-specific language , which is used at critical points in the request handling hooks to write. Most of these decisions are left to the VCL code, which makes Varnish much more configurable and customizable than most other reverse proxies. When a VCL script is loaded , it is translated into C , compiled as a shared object and linked directly to the proxy.

A number of runtime settings control parameters such as the maximum and minimum number of working threads and various timeouts. An interface at the command line level allows these parameters to be changed and the compilation , loading and activation of new VCL scripts without restarting the proxy.

In order to reduce the number of system calls to a minimum, log data is stored in shared memory and the tasks of filtering, formatting and saving on the hard disk are transferred to a separate application.

speed

While Varnish was developed in such a way that threads can run side by side as smoothly as possible, the performance of Varnish can only be as good as the implementation of the pthreads on the operating system. A bad malloc implementation can also consume unnecessary resources and thus limit performance.

Load sharing

Varnish supports load balancing both in the round robin method and randomly controlled.

See also

Web links

Individual evidence

  1. Introduction to Varnish . (accessed on January 11, 2020).
  2. Martin Blix Grydeland: varnish-6.3.1 . October 21, 2019 (accessed January 11, 2020).
  3. Martin Blix Grydeland: VSV00004 Workspace information leak . October 21, 2019 (accessed January 11, 2020).
  4. ^ What technologies is SoundCloud built on. Retrieved January 26, 2015 .
  5. ^ Varnish Software - About. In: Facebook. Retrieved December 14, 2014 (English, Varnish Software AS page on Facebook).
  6. Who relies on Varnish? (No longer available online.) In: varnish-software.com. Varnish Software AS, formerly in the original ; accessed on December 14, 2014 .  ( Page no longer available , search in web archivesInfo: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.@1@ 2Template: Dead Link / www.varnish-software.com  
  7. ^ Wikipedia: Server
  8. ^ "Making Catalyst Sites Shine with Varnish," Dec. 14, 2008
  9. "Varnish 2.0 released!", Oct. 15 2008
  10. "Varnish Cache 3.0.0" ( Memento of the original from May 1, 2013 in the Internet Archive ) Info: The archive link was inserted automatically and not yet checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www.varnish-cache.org
  11. "Varnish Cache 3.0.0 released," Jun. 16 2011
  12. "Varnish Cache 4.0.0", Apr. 10 2014 ( Memento of the original from May 25, 2014 in the Internet Archive ) Info: The archive link was inserted automatically and has not yet been checked. Please check the original and archive link according to the instructions and then remove this notice. @1@ 2Template: Webachiv / IABot / www.varnish-cache.org
  13. varnishcache / varnish-cache. In: GitHub. Retrieved November 8, 2016 .
  14. Varnish Cache 6.0.0 Release Notes. In: GitHub. Retrieved March 17, 2018 .
  15. https://varnish-cache.org/wiki/BackendPolling