

Varnish in Five Acts - spooneybarger
http://dev.theladders.com/2013/05/varnish-in-five-acts/

======
robmil
We eventually abandoned Varnish because the purging was too far from our
application logic. nginx serves static content just as fast as Varnish does,
and so getting our application to write static HTML files that were redirected
to via nginx was just as quick as Varnish but easier to purge when needed.

~~~
evantahler
This is what we did at TaskRabbit, and here's our rails midleware to do it:
<https://github.com/taskrabbit/storehouse>

~~~
robmil
We started off with our own toolkit for purging domains after deploys:
<https://github.com/robmiller/Varnish-Toolkit>

But yeah, it just got a bit painful after a while.

------
mattwalker
Has anyone found a decent Varnish plugin for Sublime Text/Textmate? There's
this -- <https://github.com/zephirworks/Varnish.tmbundle> \-- but it hasn't
been updated in a couple years and it fails for moderately complex configs.

The Python plugin works reasonably well for plain VCL syntax highlighting.

------
jjoergensen
I do not think that he should overwrite vcl_hash. By default Varnish caches by
the request host and not the backend host?

Here is the default:

sub vcl_hash { hash_data(req.url); if (req.http.host) {
hash_data(req.http.host); } else { hash_data(server.ip); } return (hash); }

~~~
spooneybarger
it caches by host. this would allow you to serve multiple sites through it
like:

example.com/foo

and

another.com/foo

without a cache collision.

we don't care about the host as everything is of the same entity service type.

~~~
jjoergensen
I must have scanned the blog post too quickly. Thanks for the clarification.

------
KevBurnsJr
It's nice to see x-invalidates in the wild!

Do you have just 1 varnish instance or two?

I never did fully solve the ban propagation problem when running multiple
redundant varnish instances.

~~~
spooneybarger
1 for each service. If we need to scale beyond one per service, I plan on
doing sharing across varnishes based on url so we don't have to propagate
bans.

------
j7
Varnish is pretty awesome, but gets complicated when you have user-specific
content. You can use things like edge-side includes and such, but it becomes
more than plug and play at that point.

~~~
spooneybarger
to make sure I understand, you meant it becomes more plug and play when you
use ESI?

~~~
IbJacked
I believe he is saying it becomes less plug and play. By saying "it becomes
more than plug and play at that point," he means it becomes more effort than
plug and play.

That's my read on it, anyway. It always gets dicey interpreting the intent of
others :)

~~~
j7
Correct, it "becomes more complicated" is what I meant.

------
lucid83
What did you use to generate those graphs? Love 'em, have to know.

~~~
KevBurnsJr
Statsd is awesome. [http://codeascraft.etsy.com/2011/02/15/measure-anything-
meas...](http://codeascraft.etsy.com/2011/02/15/measure-anything-measure-
everything/)

------
jconnolly
need to write me some pygments-vcl for vcl syntax highlighting in octopress
and elsewhere.

------
jconnolly
what's up with the /donjohnson/pulse url?

~~~
fallous
A reference to Don Johnson's terrible "Hearbeat" song from the 80s?

~~~
spooneybarger
indeed... <https://www.youtube.com/watch?v=ULI5kolBpAk>

