In the open source world, some very smart products are often used to build a high-performance, reliable, and scalable architecture. HAProxy and Varnish are both in this category. Since we can’t really compare a reverse proxy cache and a reverse proxy load balancer, I’m just going to focus on the commonalities of both software as well as the advantages of each of them. The list is not exhaustive, and I will only focus on the most used and most interesting features. So feel free to add a comment if you want me to complete the list.

HAProxy & Varnish: Similarities

HAProxy and Varnish both have:

  • reverse proxy mode

  • advanced HTTP features

  • no SSL offloading

  • client-side HTTP 1.1 with keepalive

  • tunnel mode available

  • high performance

  • basic load balancing

  • server health checking

  • IPv6 ready

  • management socket (CLI)

  • professional services and training available

HAProxy & Varnish: Differences

#1 HAProxy Benefits

The features below are available in HAProxy but aren’t in Varnish:

  • advanced load balancing

  • multiple persistence methods

  • DOS and DDOS mitigation

  • advanced and custom logging

  • web interface

  • server/application protection through queue management, slow start, etc.

  • SNI content switching

  • named ACLs

  • full HTTP 1.1 support on the server side, but keep-alive

  • works at TCP level with any L7 protocol

  • proxy protocol for both client and server

  • powerful log analyzer tool (halog)

#2 Varnish Benefits


The features below are available in Varnish but aren’t in HAProxy:

  • caching

  • grace mode (stale content delivery)

  • saint mode (manages origin server errors)

  • modular software (with a lot of modules available)

  • intuitive VCL configuration language

  • HTTP 1.1 on the server side

  • TCP connection re-use

  • the edge side includes (ESI)

  • a few command line tools for stats (varnishstat, varnishhist, etc…)

  • powerful live traffic analyzer (varnishlog)

Conclusion


They work very well together: Varnish will make the website faster by offloading static object delivery to itself, while HAProxy can ensure smooth load balancing with smart persistence and DDOS mitigation.

Despite being “competitors” on a few features, each of them has its own domain of expertise where it performs very well: HAProxy is a reverse proxy load balancer, and Varnish is a reverse proxy cache.

To be honest, here at HAProxy Technologies, we often encounter Varnish deployed alongside the Aloha load balancer or HAProxy in the infrastructures we work on. And if that is not the case, we often recommend that the customer deploy one if we feel it would improve their website's performance.

Recently, I had a discussion with Ruben and Kristian from Varnish when they came to Paris, and they told me that they also often see an HAProxy when they work on infrastructures where Varnish is deployed.

Subscribe to our blog. Get the latest release updates, tutorials, and deep-dives from HAProxy experts.