<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<style type="text/css" id="owaParaStyle"></style>
</head>
<body fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<div id="divRpF617047" style="direction: ltr; "><font face="Tahoma" size="2" color="#000000"><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">Hi Everyone!</span></font></div>
<div id="divRpF617047" style="direction: ltr; "><font face="Tahoma" size="2" color="#000000"><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; "><br>
</span></font></div>
<div id="divRpF617047" style="direction: ltr; "><font face="Tahoma" size="2" color="#000000"><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">(sorry - re-post with subject line this time :-) )</span></font></div>
<div>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">I have a curious case of unusual backend selection.</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">To summarise,  I have two backend servers servicing content for two 'subsites',  eg:</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">www.company.com/subsite1 ->  serviced by backend 'server1'</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">www.company.com/subsite2 ->  serviced by backend 'server2'</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">My problem is with subsite 2.</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">It works:   when in my browser i directly enter the url "www.company.com/subsite2".</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">It doesn't work:   when i restart the browser and browse to www.company.com/subsite1 (handled by server1),  *then* click a link to subsite2 .   At this point,  packet captures show the request
 still going to server1, despite the vcl clearly defining subsite2 should be handled by server2 (and as confirmed by subsite2 working when no previous browsing history has occurred on the company site).</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">Furthermore,  when the request for subsite2 is incorrectly sent to server1,  the website generates a redirect. This redirect is to the correct URL that should go to server2,  but is again sent
 to server1, and a redirect loop between the browser and server1 occurs because varnish insists on sending the request to server1 instead of server2.      </p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">Curiously,  the varnishlog has no record of this looping behaviour at all!    I  vaguely remember reading that a malformed request does not make it into the varnishlog output?</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">So I'm left wondering about what is the difference between hitting the subsite2 URL directly versus navigating to it via subsite1.   Is this behaviour tied to:</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">* cookie based CMS being used on subsite1 - does varnish use cookies to determine back-end re-use or something?  I didn't think so...</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">* http tcp session re-use - the browser is re-using a single TCP session when this happens,  but I thought varnish inspects every request regardless - i.e. it doesn't blindly pass an existing
 TCP session from the browser through to the backend server it had previously selected…</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">* perhaps a malformed request or something…</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">Our environment is a reasonably simple one I think.  We basically use regex on URL and host to determine which backend to use. We use minimal caching functions - just for static objects , and
 even that is a token effort.  Varnish serves primarily as a 'URL router' for us.      We are running varnishd (varnish-3.0.0 revision 3bd5997)</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">So I'm kind of stuck!     I realise I haven't posted any config.  At this stage,  I'm hoping someone can help with confirming my understanding of varnish behaviour regards cookies, session re-use
 and malformed request handling as above.  But any ideas on how to start debugging this one will be greatly appreciated!</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">Thankyou!</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica; min-height:14.0px">
<br>
</p>
<p style="margin:0.0px 0.0px 0.0px 0.0px; font:12.0px Helvetica">Guy</p>
</div>
</div>
</div>
</div>
</body>
</html>