<div>Hi,</div><div><br></div><div>On Thu, Oct 21, 2010 at 11:14 PM, Gresens, August <span dir="ltr"><<a href="mailto:AGresens@scholastic.com">AGresens@scholastic.com</a>></span> wrote:</div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">















<div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><font class="Apple-style-span" face="Arial"><br></font></p>

<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;font-family:Arial">Where does Varnish typically reside in the network
architecture? I would imagine in a scenario in which we would be using ESI, we
would want Varnish in front of the application load balancers. In this way, Varnish
would be the primary page assembler. We would likely run an HA setup for fault
tolerance.</span></font></p></div></div></blockquote><div><br></div><div>Since I am such an expert in picking out color for such bikesheds I thought I might chime in. :-)</div><div><br></div><div>It actually makes quite a lot of sense to have Varnish do the actual application load balancing. That way you can leverage the saint mode properly giving you far better fault tolerance. Imagine one app server failing; Varnish can then try the other one, if that one fails as well serve up some stale content from cache. </div>

<div> <span class="Apple-style-span" style="font-family: Arial; font-size: 13px; "> </span></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div lang="EN-US" link="blue" vlink="purple">

<div>

<p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;font-family:Arial">We were also considering if Varnish could be used much
farther downstream – in between the load balancer and the application. We
thought is might provide for more fault tolerance, but it seems the disadvantage
would be that there would be a separate cached copy in each redundant varnish
instance, and with ESI secondary requests would be made back out to the same
web server potentially, setting up a feed back loop that could cause problems.</span></font></p></div></div></blockquote><div><br></div><div>As has already been suggested - place a load balancer in front of Varnish and make it hash on target URL. Oh, did I mention that it makes sense to use Varnish as a hashing load balancer also? Just turn off the caching. There are some features that Varnish might lack compared to other load balancers (gzip, ssl) but it more then makes that up with speed and flexibility.</div>

</div><br>-- <br><div>Per Buer,  Varnish Software<br>Phone: +47 21 98 92 61 / Mobile: +47 958 39 117 / skype: per.buer</div><br>