Varnish
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
- Official website (in English)
- Official Developer Website (in English)
- You're Doing It Wrong, June 11, 2010 ACM Queue article by Varnish developer Poul-Henning Kamp describing the implementation of the LRU list (in English).
Individual evidence
- ↑ Introduction to Varnish . (accessed on January 11, 2020).
- ↑ Martin Blix Grydeland: varnish-6.3.1 . October 21, 2019 (accessed January 11, 2020).
- ↑ Martin Blix Grydeland: VSV00004 Workspace information leak . October 21, 2019 (accessed January 11, 2020).
- ^ What technologies is SoundCloud built on. Retrieved January 26, 2015 .
- ^ Varnish Software - About. In: Facebook. Retrieved December 14, 2014 (English, Varnish Software AS page on Facebook).
- ↑ 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 archives ) Info: The link was automatically marked as defective. Please check the link according to the instructions and then remove this notice.
- ^ Wikipedia: Server
- ^ "Making Catalyst Sites Shine with Varnish," Dec. 14, 2008
- ↑ "Varnish 2.0 released!", Oct. 15 2008
- ↑ "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.
- ↑ "Varnish Cache 3.0.0 released," Jun. 16 2011
- ↑ "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.
- ↑ varnishcache / varnish-cache. In: GitHub. Retrieved November 8, 2016 .
- ↑ Varnish Cache 6.0.0 Release Notes. In: GitHub. Retrieved March 17, 2018 .
- ↑ https://varnish-cache.org/wiki/BackendPolling