It's worth noting that sometimes you only have content that differs for your "logged in" users. Or, content that is the same with the exception of actions that a user has taken on your site. Say, in the case of a shopping cart.<p>In that use case, you might find that one cache covers everything except their shopping cart preview. This is where ESI (Edge Side Includes) come in. I've never used it in practice, but the idea is similar to server side includes of yesteryear. Here's a good article:<p><a href="http://blog.redfin.com/devblog/2010/05/esi_and_caching_trickery_in_varnish.html" rel="nofollow">http://blog.redfin.com/devblog/2010/05/esi_and_caching_trick...</a>
This article brought back to memory the first paywall like functionality that was implemented in Varnish, since it was done using the cURL VMOD (and the reason why it was developed by Varnish Software in the first place).<p>"Development of this VMOD has been sponsored by the Norwegian company
Aspiro Music AS for usage on their WiMP music streaming service." from <<a href="https://github.com/varnish/libvmod-curl#readme>" rel="nofollow">https://github.com/varnish/libvmod-curl#readme></a>;
This is great thanks. We use Varnish with our current site iteration and it is a life saver. It keeps us running without any significant re-architecting on the backend.<p>Currently, new directions do not include Varnish but I was starting to re-consider that position and this article was a nice reminder. Thanks!
It reminds me of the recent Varnish Paywall article:<p><a href="http://highscalability.com/blog/2012/9/12/using-varnish-for-paywalls-moving-logic-to-the-edge.html" rel="nofollow">http://highscalability.com/blog/2012/9/12/using-varnish-for-...</a>