Varnish Cache – caching HTTP reverse proxy

Varnish is a web accelerator written with performance and flexibility in mind. It’s modern architecture gives it a significantly better performance. Varnish stores web pages in memory so the web servers do not have to create the same web page repeatedly. The web server only recreates a page when it is changed. When content is served from memory this happens a lot faster then anything.

Additionally Varnish can serve web pages much faster then any application server is capable of – giving the website a significant speed enhancement.

It uses the advanced features in Linux 2.6, FreeBSD 6/7 and Solaris 10 to achieve its high performance. For a cost-effective configuration, Varnish Cache uses between 1-16GB and a SSD disk.

Features include:

  • Modern design.
  • VCL – a very flexible configuration language. The VCL configuration is translated to C, compiled, loaded and executed giving flexibility and speed.
  • Load balancing using both a round-robin and a random director, both with a per-backend weighting.
  • DNS, Random, Hashing and Client IP based Directors.
  • Load balance between multiple backends.
  • Support for Edge Side Includes including stitching together compressed ESI fragments.
  • Heavily threaded.
  • URL rewriting.
  • Cache multiple vhosts with a single Varnish.
  • Log data is stored in shared memory.
  • Basic health-checking of backends.
  • Graceful handling of “dead” backends.
  • Administered by a command line interface.
  • Use In-line C to extend Varnish.
  • Can be used on the same system as Apache.
  • Run multiple Varnish on the same system.
  • Support for HAProxy’s PROXY protocol. This is a protocol adds a small header on each incoming TCP connection that describes who the real client is, added by (for example) an SSL terminating process.
  • Warm and cold VCL states.
  • Plugin support with Varnish Modules, called VMODs.
  • Backends defined through VMODs.
  • Gzip Compression and Decompression.
  • HTTP Streaming Pass & Fetch.
  • Saint and Grace mode. Saint Mode allows for unhealthy backends to be blacklisted for a period of time, preventing them from serving traffic when using Varnish as a load balancer. Grace mode allows Varnish to serve an expired version of a page or other asset in cases where Varnish is unable to retrieve a healthy response from the backend.
  • Experimental support for Persistent Storage, without LRU eviction.

Support: Documentation
Developer: Varnish Software
License: FreeBSD

Return to Web Caches Home Page | Return to Optimize Web Delivery Home Page

Read our complete collection of recommended free and open source software. The collection covers all categories of software.
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.