2. 1. General Description: Varnish
• HTTP Accelerator
• Caching reverse proxy
o Sits in front of any HTTP server
• Load Balancer
• Fail Over System
• Perfect Browser caching solution
o Prevents hard refresh calls
• Typical speedup: 300x-1000x
• VCL – compiled to C
• ESI
3. 1. General Description: Varnish
ESI – Edge Side Includes
• Allows page fragmentation
• Fragments with different TTL
• ESI are serialized
• Configurable depth of ESI calls
• Doesn’t support alt and noerror attributes
• ESI calls can’t set cookies
4. 2. Usage: Varnish
• Originally built for Norwegian newspaper
• Current users:
o
o
o
o
o
Facebook
Twitter
Hulu
BBC
Wired
6. 3. Architecture: Varnish
Main methods:
•
•
•
•
•
vcl_recv – beginning of request
vcl_fetch – after response from backend
vcl_hash – how to create a hash key
vcl_deliver – before a cached object is delivered
vcl_error – when there is an error
9. 4. Comparison: Squid
Advantages of Squid over Varnish:
• Built in SSL support
• Better support for streaming delivery of objects
• Support for antivirus plugins
Advantages of Varnish over Squid:
• Amazing configuration system – VCL
• Better performance and scalability
• Better invalidation support
• Better module support
10. 5. Conclusion
• Simple and great performance increase
• VCL is powerful but sometimes simple is better
• Make sure you can still handle a cold start