vanish(squid) + HAProxy + nginx + memcached(redis)

1. Load-balance then cache

1
2
3
4
5
                           +-- Cache server #1 (varnish) -- App server #1
/
Load Balancer (haproxy)-+---- Cache server #2 (varnish) -- App server #2
\
+-- Cache server #3 (varnish) -- App server #3

2. Cache then load-balance

1
2
3
4
5
                                                       +-- App server #1
/
Cache Server (varnish) --- Load Balancer (haproxy) --+---- App server #2
\
+-- App server #3

I. stunnel -> vanish -> HAProxy -> nginx -> nodeJS -> memcached(redis) (for sesson storage)
II. nginx (for HTTP compression) –> Varnish cache (for caching) –> HTTP level load balancer (HAProxy, or nginx, or the Varnish built-in) –> webservers.
III. Apache Traffic Server/Squid/Vanish + HAProxy + Nginx + memcached(Redis) (for sesson storage)

Reference:

http://serverfault.com/questions/204025/ordering-1-nginx-2-varnish-3-haproxy-4-webserver
http://yaozb.blog.51cto.com/2762349/793875
http://stackoverflow.com/questions/15448196/haproxy-in-front-of-varnish-or-the-other-way-round
http://blog.exceliance.fr/2012/08/25/haproxy-varnish-and-the-single-hostname-website/
http://serverfault.com/questions/51691/need-haproxy-varnish-nginx-setup-suggestions
https://www.exratione.com/2012/08/websockets-over-ssl-stunnel-varnish-nginx-nodejs/