> And most importantly, how its capabilities compare to Varnish. From my > searching and articles I have read so far, the general consensus seems to be that Varnish is more flexible and offers more abilities for dynamic page caching and cache purging. Is this indeed the case today?
Depends on what are your requirements. While Varnish with its VCL might be more "programmable" from the get go (I imagine you can achieve the same with openresty (nginx and Lua)) there are advantages and drawbacks for each product. I haven't used recent versions of varnish (so these points might be now invalid) here are some from my own experience: - it seems Varnish still doesn't have a native SSL/TLS support [1] so you need some SSL termination/offloading (hitch, haproxy, nginx or some CDN) above it - adds and extra layer and additional piece of software you have to manage - the community nginx version doesn't have a callable cache PURGE option [2] - you have to either use the nginx plus version or compile a third party module for that. Varnish offers that by default. - Varnish has different kinds of storage backends (mmap, umem,file etc) which might be more optimal/performant for particular cases. For nginx besides the file based you have to use other services redis/memcache etc. On the other hand the persistent storage for Varnish seems to be deprecated what is/could be problematic for large caches in case of restarts. - based on your cache objects (count) there might be some hardware requirement differences - Varnish used to have a 1Kb per object memory overhead (even using a file based storage backend) - and in my case on a 32Gb ram node I could cache at most ~33mil objects while nginx on the same hardware could handle 800+ mil easily (obviously nowadays ram amounts might not be an issue) My 2 cents .. [1] https://docs.varnish-software.com/varnish-administration-console/installation/ssl/ [2] http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_purge wbr rr _______________________________________________ nginx mailing list nginx@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx