<div dir="ltr"><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex" class="gmail_quote">It sounds like you are using a tcp monitor on your F5 from reading over at first glance. If varnish goes down, but the system stays up, your monitor wouldn’t remove the node from the pool and keeps sending connections to that node. You want to use a custom monitor like in the attached image in combination with this in your vcl. You can test this by stopping one of your varnish nodes and seeing if it is marked down in the pool.<br>
  // add ping url to test Varnish status<br>  if (req.request == "GET" && req.url ~ "/varnish-ping") {<br>  error 200 "OK";<br>  }</blockquote><div><br></div><div><br></div><div>Hi Jason,</div>
<div><br></div><div>Thank you very much for your reply. And yeah, I sort of think this is an issue with the F5 and not with Varnish. Mainly because both Varnish instances are identically installed and configured. I don't actually have direct access to the F5 at work. But one of the F5 guys that I deal with is very easy going and I'm sure will be ready to help.</div>
<div><br></div><div>I'll ping him with this scenario tomorrow. Thank you for confirming my suspicion that this issue is likely on the F5 end and not the Varnish end. </div><div><br></div><div>Thanks</div><div>Tim</div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 11, 2014 at 8:08 PM, Jason Heffner <span dir="ltr"><<a href="mailto:jdh132@psu.edu" target="_blank">jdh132@psu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>It sounds like you are using a tcp monitor on your F5 from reading over at first glance. If varnish goes down, but the system stays up, your monitor wouldn’t remove the node from the pool and keeps sending connections to that node. You want to use a custom monitor like in the attached image in combination with this in your vcl. You can test this by stopping one of your varnish nodes and seeing if it is marked down in the pool.</div>
<div><br></div><div><div>  // add ping url to test Varnish status</div><div>  if (req.request == "GET" && req.url ~ "/varnish-ping") {</div><div>  error 200 "OK";</div><div>  }</div></div>
<div><br></div><div><img name="145edca60f60bbe7_varnish-ping.png" height="597" width="659" src="cid:829BAAB3-C43A-4F3D-A774-8B66DB007D20@hsd1.pa.comcast.net."></div><div><br></div><div>Jason</div><br><div>
<span style="border-collapse:separate;border-spacing:0px"><div>p: <a href="tel:%28814%29%20865-1840" value="+18148651840" target="_blank">(814) 865-1840</a>, c: <a href="tel:%28814%29%20777-7665" value="+18147777665" target="_blank">(814) 777-7665</a><br>
Systems Administrator<br>Teaching and Learning with Technology, Information Technology Services<br>The Pennsylvania State University</div></span>

</div>
<br><div><div><div class="h5"><div>On May 11, 2014, at 7:15 PM, Tim Dunphy <<a href="mailto:bluethundr@gmail.com" target="_blank">bluethundr@gmail.com</a>> wrote:</div><br></div></div><blockquote type="cite"><div><div class="h5">
<div dir="ltr">Hey guys,<div><br></div><div> One more interesting thing about my situation. Is that if I do a varnishstat command on both node A (which seems to control the site) and node B (which does not seem to), I get further evidence that both nodes are supporting the site. </div>

<div><br></div><div><p><br></p><p>0+02:10:12                                                       <b>uszmpwsls014la</b></p><p>Hitrate ratio:        4        4        4</p><p>Hitrate avg:     0.9977   0.9977   0.9977</p>
<p><br></p><p>        3139         1.00         0.40 Client connections accepted</p><p>        3149         1.00         0.40 Client requests received</p><p>        3120         1.00         0.40 Cache hits</p><p>          29         0.00         0.00 Cache misses</p>
<p>          25         0.00         0.00 Backend conn. success</p><p>           4         0.00         0.00 Backend conn. reuses</p><p>          20         0.00         0.00 Backend conn. was closed</p><p>          26         0.00         0.00 Backend conn. recycles</p>
<p>          29         0.00         0.00 Fetch with Length</p><p>          16          .            .   N struct sess_mem</p><p>          26          .            .   N struct object</p><p>          36          .            .   N struct objectcore</p>
<p>          25          .            .   N struct objecthead</p><p>           2          .            .   N struct vbe_conn</p><p>         500          .            .   N worker threads</p><p>         500         0.00         0.06 N worker threads created</p>
<p>           3          .            .   N backends</p><p>        1563          .            .   N LRU moved objects</p><p>        3128         1.00         0.40 Objects sent with write</p><p>        3139         1.00         0.40 Total Sessions</p>
<p><br></p><p>0+03:04:56                                                       <b>uszmpwsls014lb</b></p><p>Hitrate ratio:       10       21       21</p><p>Hitrate avg:     0.9999   0.9998   0.9998</p><p>
<br></p><p>        4440         2.00         0.40 Client connections accepted</p><p>        4440         2.00         0.40 Client requests received</p><p>        4421         2.00         0.40 Cache hits</p><p>          19         0.00         0.00 Cache misses</p>
<p>          19         0.00         0.00 Backend conn. success</p><p>          16         0.00         0.00 Backend conn. was closed</p><p>          19         0.00         0.00 Backend conn. recycles</p><p>          19         0.00         0.00 Fetch with Length</p>
<p>          10          .            .   N struct sess_mem</p><p>          19          .            .   N struct object</p><p>          29          .            .   N struct objectcore</p><p>          11          .            .   N struct objecthead</p>
<p>
           3          .            .   N struct vbe_conn</p><p>         500          .            .   N worker threads</p><p>         500         0.00         0.05 N worker threads created</p><p>
           3          .            .   N backends</p><p>        2209          .            .   N LRU moved objects</p><p>        4440         2.00         0.40 Objects sent with write</p><p>        4440         2.00         0.40 Total Sessions</p>
<p>        4440         2.00         0.40 Total Requests</p><p>So why the entire site goes down when I bring down node A but leave up node B I am still a little puzzled by. Unless the explanation may be that the F5 is NOT balancing the two varnish nodes in quite the way I appear to think. But if that is the case, then why do we see almost identical stats coming out of both hosts?</p>
<p><br></p><p>Thanks</p><p>Tim</p></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sun, May 11, 2014 at 6:20 PM, Tim Dunphy <span dir="ltr"><<a href="mailto:bluethundr@gmail.com" target="_blank">bluethundr@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><p><font face="tahoma, sans-serif">hey all.. </font></p><p><span style="font-family:tahoma,sans-serif">I have two varnish nodes being balanced by an F5 load balancer both were installed in the same exact manner with yum installing local rpms of varnish 2.1.5 (the requested version of the client).</span><br>


</p><p><span style="font-family:tahoma,sans-serif">Both share the exact same default.vcl file.  But if you take node a down with node b running the whole site goes down if you take node b down with node a running the site stays up. I need to determine why node b isn't supporting the site. Each varnish node needs to be balancing 3 web servers and it looks like the a node does. Since the site goes down when you take down node a and leave node b running </span><br>


</p><p><span style="font-family:tahoma,sans-serif">I had a look at varnishlog for both and both nodes appear to be getting hit.</span></p><p><span style="font-family:tahoma,sans-serif">Node A:</span><br></p><p><span style="font-family:tahoma,sans-serif">3 VCL_return   c deliver</span><br>
</p><p><font face="tahoma, sans-serif">    3 TxProtocol   c HTTP/1.1</font></p><p><font face="tahoma, sans-serif">    3 TxStatus     c 200</font></p><p><font face="tahoma, sans-serif">    3 TxResponse   c OK</font></p><p>
<font face="tahoma, sans-serif">    3 TxHeader     c Server: Apache</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c X-Powered-By: PHP/5.2.8</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Content-Type: text/html</font></p>
<p><font face="tahoma, sans-serif">    3 TxHeader     c Cache-Control: max-age = 600</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Content-Length: 4</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Date: Sun, 11 May 2014 22:11:02 GMT</font></p>
<p><font face="tahoma, sans-serif">    3 TxHeader     c X-Varnish: 1578371599 1578371564</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Age: 86</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Via: 1.1 varnish</font></p>
<p><font face="tahoma, sans-serif">    3 TxHeader     c Connection: close</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Varnish-X-Cache: HIT</font></p><p><font face="tahoma, sans-serif">    3 TxHeader     c Varnish-X-Cache-Hits: 35</font></p>
<p><font face="tahoma, sans-serif">    3 Length       c 4</font></p><p><font face="tahoma, sans-serif">    3 ReqEnd       c 1578371599 1399846262.156239033 1399846262.156332970 0.000054121 0.000056028 0.000037909</font></p>
<p><font face="tahoma, sans-serif"><br></font></p><p><font face="tahoma, sans-serif">Node B:</font></p><p><span style="font-family:tahoma,sans-serif">9 VCL_return   c deliver</span></p><p><font face="tahoma, sans-serif">    9 TxProtocol   c HTTP/1.1</font></p>
<p><font face="tahoma, sans-serif">    9 TxStatus     c 200</font></p><p><font face="tahoma, sans-serif">    9 TxResponse   c OK</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Server: Apache</font></p><p>
<font face="tahoma, sans-serif">    9 TxHeader     c X-Powered-By: PHP/5.2.17</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Content-Type: text/html</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Cache-Control: max-age = 600</font></p>
<p><font face="tahoma, sans-serif">    9 TxHeader     c Content-Length: 4</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Date: Sun, 11 May 2014 22:11:33 GMT</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c X-Varnish: 1525629213 1525629076</font></p>
<p><font face="tahoma, sans-serif">    9 TxHeader     c Age: 341</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Via: 1.1 varnish</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Connection: close</font></p>
<p><font face="tahoma, sans-serif">    9 TxHeader     c Varnish-X-Cache: HIT</font></p><p><font face="tahoma, sans-serif">    9 TxHeader     c Varnish-X-Cache-Hits: 137</font></p><p><font face="tahoma, sans-serif">    9 Length       c 4</font></p>
<p><font face="tahoma, sans-serif">    9 ReqEnd       c 1525629213 1399846293.098695993 1399846293.098922968 0.000057936 0.000181913 0.000045061</font></p><p><span style="font-family:tahoma,sans-serif">So I'm not sure why this is the case.</span><br>
</p><p><span style="font-family:tahoma,sans-serif">Here’s the VCL file that I’m using in case this might shed any clues. I apologize that I’m still to much of a newb to ferret out the most relevant parts. But I hope that the context may yield some clues. </span><br>


</p><p><span style="font-family:tahoma,sans-serif">backend web1 {</span><br></p><p><font face="tahoma, sans-serif">    .host = "10.10.1.104";</font></p><p><font face="tahoma, sans-serif">    .port = "80";</font></p>
<p><font face="tahoma, sans-serif">    .connect_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .first_byte_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .between_bytes_timeout = 45s;</font></p>
<p><font face="tahoma, sans-serif">    .max_connections = 70;</font></p><p><font face="tahoma, sans-serif">    .probe = {</font></p><p><font face="tahoma, sans-serif">        .url = "/healthcheck.php";</font></p>
<p><font face="tahoma, sans-serif">        .timeout = 5s;</font></p><p><font face="tahoma, sans-serif">        .interval = 30s;</font></p><p><font face="tahoma, sans-serif">        .window = 10;</font></p><p><span style="font-family:tahoma,sans-serif">        .threshold = 1;</span></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">backend web2 {</span><br></p><p><font face="tahoma, sans-serif">    .host = "10.10.1.105";</font></p>
<p><font face="tahoma, sans-serif">    .port = "80";</font></p><p><font face="tahoma, sans-serif">    .connect_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .first_byte_timeout = 45s;</font></p>
<p><font face="tahoma, sans-serif">    .between_bytes_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .max_connections = 70;</font></p><p><font face="tahoma, sans-serif">    .probe = {</font></p><p><font face="tahoma, sans-serif">        .url = "/healthcheck.php";</font></p>
<p><font face="tahoma, sans-serif">        .timeout = 5s;</font></p><p><font face="tahoma, sans-serif">        .interval = 30s;</font></p><p><font face="tahoma, sans-serif">        .window = 10;</font></p><p><font face="tahoma, sans-serif">        .threshold = 1;</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">backend web3 {</span><br></p><p><font face="tahoma, sans-serif">    .host = "10.10.1.106";</font></p>
<p><font face="tahoma, sans-serif">    .port = "80";</font></p><p><font face="tahoma, sans-serif">    .connect_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .first_byte_timeout = 45s;</font></p>
<p><font face="tahoma, sans-serif">    .between_bytes_timeout = 45s;</font></p><p><font face="tahoma, sans-serif">    .max_connections = 70;</font></p><p><font face="tahoma, sans-serif">    .probe = {</font></p><p><font face="tahoma, sans-serif">        .url = "/healthcheck.php";</font></p>
<p><font face="tahoma, sans-serif">        .timeout = 5s;</font></p><p><font face="tahoma, sans-serif">        .interval = 30s;</font></p><p><font face="tahoma, sans-serif">        .window = 10;</font></p><p><font face="tahoma, sans-serif">        .threshold = 1;</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">acl purge {</span><br></p><p><font face="tahoma, sans-serif">    "localhost";</font></p>
<p><font face="tahoma, sans-serif">    "127.0.0.1";</font></p><p><font face="tahoma, sans-serif">    "10.10.1.102";</font></p><p><font face="tahoma, sans-serif">    "10.10.1.103";</font></p><p>
<font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">director www round-robin {</span><br></p><p><font face="tahoma, sans-serif">    { .backend = web1; }</font></p><p><font face="tahoma, sans-serif">    { .backend = web2; }</font></p>
<p><font face="tahoma, sans-serif">    { .backend = web3; }</font></p><p><font face="tahoma, sans-serif"><br></font></p><p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">sub vcl_recv {</span><br>
</p><p><font face="tahoma, sans-serif">    set req.backend = www;</font></p><p><font face="tahoma, sans-serif">    set req.grace = 6h;</font></p><p><font face="tahoma, sans-serif">    if (!req.backend.healthy) {</font></p>
<p><font face="tahoma, sans-serif">        set req.grace = 24h;</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    set req.http.X-Forwarded-For = req.http.X-Forwarded-For ", " client.ip;</font></p>
<p><font face="tahoma, sans-serif">    if (req.http.host ~ "^origin\.test(.+\.|)mywebsite\.com$") {</font></p><p><font face="tahoma, sans-serif">      return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (req.http.host ~ ".*\.<a href="http://mywebsite.com/" target="_blank">mywebsite.com</a>|<a href="http://mywebsite.com/" target="_blank">mywebsite.com</a>") {</font></p><p>
<font face="tahoma, sans-serif">        /* allow (origin.)<a href="http://stage.m.mywebsite.com/" target="_blank">stage.m.mywebsite.com</a> to be a separate host */</font></p><p><font face="tahoma, sans-serif">        if (req.http.host != "<a href="http://stage.m.mywebsite.com/" target="_blank">stage.m.mywebsite.com</a>") {</font></p>
<p><font face="tahoma, sans-serif">            set req.http.host = "<a href="http://stage.mywebsite.com/" target="_blank">stage.mywebsite.com</a>";</font></p><p><font face="tahoma, sans-serif">        }</font></p>
<p><font face="tahoma, sans-serif">    } else {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.request == "PURGE") {</font></p>
<p><font face="tahoma, sans-serif">        if (!client.ip ~ purge) {</font></p><p><font face="tahoma, sans-serif">            error 405 "Not allowed.";</font></p><p><font face="tahoma, sans-serif">        }</font></p>
<p><font face="tahoma, sans-serif">        return (lookup);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.request != "GET" &&</font></p><p><font face="tahoma, sans-serif">        req.request != "HEAD" &&</font></p>
<p><font face="tahoma, sans-serif">        req.request != "PUT" &&</font></p><p><font face="tahoma, sans-serif">        req.request != "POST" &&</font></p><p><font face="tahoma, sans-serif">        req.request != "TRACE" &&</font></p>
<p><font face="tahoma, sans-serif">        req.request != "OPTIONS" &&</font></p><p><font face="tahoma, sans-serif">        req.request != "DELETE") {</font></p><p><font face="tahoma, sans-serif">            return (pipe);</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.request != "GET" && req.request != "HEAD") {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.url ~ "sites/all/modules/custom/bravo_ad/ads.html\?.*") {</font></p><p><font face="tahoma, sans-serif">      set req.url = "/sites/all/modules/custom/bravo_ad/ads.html";</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.url ~ "eyeblaster/addineyeV2.html\?.*") {</font></p><p><font face="tahoma, sans-serif">        set req.url = "/eyeblaster/addineyeV2.html";</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.url ~ "ahah_helper\.php|bravo_points\.php|install\.php|update\.php|cron\.php|/json(:?\?.*)?$") {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.http.Authorization) {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (req.url ~ "login" || req.url ~ "logout") {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (req.url ~ "^/admin/" || req.url ~ "^/node/add/") {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (req.http.Cache-Control ~ "no-cache") {</font></p><p><font face="tahoma, sans-serif">        // return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (req.http.Cookie ~ "(VARNISH|DRUPAL_UID|LOGGED_IN|SESS|_twitter_sess)") {</font></p><p><font face="tahoma, sans-serif">        set req.http.Cookie = regsuball(req.http.Cookie, "(^|;\s*)(__[a-z]+|has_js)=[^;]*", "");</font></p>
<p><font face="tahoma, sans-serif">        set req.http.Cookie = regsub(req.http.Cookie, "^;\s*", "");</font></p><p><font face="tahoma, sans-serif">    } else {</font></p><p><font face="tahoma, sans-serif">        unset req.http.Cookie;</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    /* removed varnish cache backend logic */</font></p><p><font face="tahoma, sans-serif">    if (req.restarts == 0) {</font></p><p><font face="tahoma, sans-serif">        set req.backend = www;</font></p>
<p><font face="tahoma, sans-serif">    } elsif (req.restarts >= 2) {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.restarts >= 2) {</font></p>
<p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.url ~ "\.(ico|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|ICO|JPG|JPEG|PNG|GIF|GZ|TGZ|BZ2|TBZ|MP3|OOG|SWF)") {</font></p>
<p><font face="tahoma, sans-serif">        unset req.http.Accept-Encoding;</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.url ~ "^/(sites/all/modules/mywebsite_admanager/includes/ads.php|doubleclick/DARTIframe.html)(\?.*|)$") {</font></p>
<p><font face="tahoma, sans-serif">        set req.url = regsub(req.url, "\?.*$", "");</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.http.Accept-Encoding ~ "gzip") {</font></p>
<p><font face="tahoma, sans-serif">        set req.http.Accept-Encoding = "gzip";</font></p><p><font face="tahoma, sans-serif">    } elsif (req.http.Accept-Encoding ~ "deflate") {</font></p><p><font face="tahoma, sans-serif">        set req.http.Accept-Encoding = "deflate";</font></p>
<p><font face="tahoma, sans-serif">    } else {</font></p><p><font face="tahoma, sans-serif">        unset req.http.Accept-Encoding;</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    return (lookup);</font></p>
<p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">sub vcl_pipe {</span><br></p><p><font face="tahoma, sans-serif">    set bereq.http.connection = "close";</font></p><p>
<font face="tahoma, sans-serif">    return (pipe);</font></p><p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">sub vcl_pass {</span><br></p><p><font face="tahoma, sans-serif">    return (pass);</font></p>
<p><font face="tahoma, sans-serif">}</font></p><p><span style="font-family:tahoma,sans-serif">sub vcl_hash {</span><br></p><p><font face="tahoma, sans-serif">    set req.hash += req.url;</font></p><p><font face="tahoma, sans-serif">    set req.hash += req.http.host;</font></p>
<p><font face="tahoma, sans-serif">    if (req.http.Cookie ~ "VARNISH|DRUPAL_UID|LOGGED_IN") {</font></p><p><font face="tahoma, sans-serif">        set req.hash += req.http.Cookie;</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    return (hash);</font></p><p><font face="tahoma, sans-serif">}</font></p><p><font face="tahoma, sans-serif">sub vcl_hit {</font></p><p><font face="tahoma, sans-serif">    if (req.request == "PURGE") {</font></p>
<p><font face="tahoma, sans-serif">        set obj.ttl = 0s;</font></p><p><font face="tahoma, sans-serif">        error 200 "Purged.";</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">}</font></p>
<p><font face="tahoma, sans-serif">sub vcl_fetch {<br></font></p><p><font face="tahoma, sans-serif">    if (beresp.status == 500) {</font></p><p><font face="tahoma, sans-serif">        set req.http.X-Varnish-Error = "1";</font></p>
<p><font face="tahoma, sans-serif">        restart;</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    set beresp.grace = 6h;</font></p><p><font face="tahoma, sans-serif">    # Set a short circuit cache lifetime for resp codes above 302</font></p>
<p><font face="tahoma, sans-serif">    if (beresp.status > 302) {</font></p><p><font face="tahoma, sans-serif">    <span>  </span>set beresp.ttl = 60s;</font></p><p><font face="tahoma, sans-serif">    <span>    </span>set beresp.http.Cache-Control = "max-age = 60";</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (beresp.http.Edge-control ~ "no-store") {</font></p><p><font face="tahoma, sans-serif">        set beresp.http.storage = "1";</font></p>
<p><font face="tahoma, sans-serif">        set beresp.cacheable = false;</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (beresp.status >= 300 || !beresp.cacheable) {</font></p>
<p><font face="tahoma, sans-serif">        set beresp.http.Varnish-X-Cacheable = "Not Cacheable";</font></p><p><font face="tahoma, sans-serif">        set beresp.http.storage = "1";</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (beresp.http.Set-Cookie) {</font></p><p><font face="tahoma, sans-serif">        return (pass);</font></p><p><font face="tahoma, sans-serif">    }</font></p>
<p><font face="tahoma, sans-serif">    if (beresp.cacheable) {</font></p><p><font face="tahoma, sans-serif">        unset beresp.http.expires;</font></p><p><font face="tahoma, sans-serif">        set beresp.ttl = 600s;</font></p>
<p><font face="tahoma, sans-serif">        set beresp.http.Cache-Control = "max-age = 600";</font></p><p><font face="tahoma, sans-serif">        if (req.url ~ "\.(ico|jpg|jpeg|png|gif|gz|tgz|bz2|tbz|mp3|ogg|swf|ICO|JPG|JPEG|PNG|GIF|GZ|TGZ|BZ2|TBZ|MP3|OOG|SWF)") {</font></p>
<p><font face="tahoma, sans-serif">            set beresp.ttl = 43829m;</font></p><p><font face="tahoma, sans-serif">            set beresp.http.Cache-Control = "max-age = 1000000";</font></p><p><font face="tahoma, sans-serif">        }</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    return (deliver);</font></p><p><font face="tahoma, sans-serif">}</font></p><p><font face="tahoma, sans-serif"><br></font></p><p><font face="tahoma, sans-serif">sub vcl_deliver {</font></p>
<p><font face="tahoma, sans-serif">    if (obj.hits > 0) {</font></p><p><font face="tahoma, sans-serif">        set resp.http.Varnish-X-Cache = "HIT";</font></p><p><font face="tahoma, sans-serif">        set resp.http.Varnish-X-Cache-Hits = obj.hits;</font></p>
<p><font face="tahoma, sans-serif">    } else {</font></p><p><font face="tahoma, sans-serif">        set resp.http.Varnish-X-Cache = "MISS";</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    return (deliver);</font></p>
<p><font face="tahoma, sans-serif">}</font></p><p><font face="tahoma, sans-serif">sub vcl_error {</font></p><p><font face="tahoma, sans-serif">    if (req.restarts == 0) {</font></p><p><font face="tahoma, sans-serif">        return (restart);</font></p>
<p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">    if (req.http.X-Varnish-Error != "1") {</font></p><p><font face="tahoma, sans-serif">        set req.http.X-Varnish-Error = "1";</font></p>
<p><font face="tahoma, sans-serif">        return (restart);</font></p><p><font face="tahoma, sans-serif">    }</font></p><p><font face="tahoma, sans-serif">}</font></p><p><font face="tahoma, sans-serif"> The only part that I omitted was the one pointing to the error page. Can anyone offer any advice on how to troubleshoot this?</font></p>
<p>I'm enclosing the full VCL in case that extra info is helpful. I didn't omit much tho.</p><p><font face="tahoma, sans-serif">Thank you!</font></p><span><font color="#888888"><p><font face="tahoma, sans-serif">Tim</font></p>
<div><font face="tahoma, sans-serif"><br></font></div><font face="tahoma, sans-serif">-- <br>GPG me!!<br><br>gpg --keyserver <a href="http://pool.sks-keyservers.net/" target="_blank">pool.sks-keyservers.net</a> --recv-keys F186197B<br>


</font><br>
</font></span></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>GPG me!!<br><br>gpg --keyserver <a href="http://pool.sks-keyservers.net/" target="_blank">pool.sks-keyservers.net</a> --recv-keys F186197B<br><br>
</div></div></div>
_______________________________________________<br>varnish-misc mailing list<br><a href="mailto:varnish-misc@varnish-cache.org" target="_blank">varnish-misc@varnish-cache.org</a><br><a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" target="_blank">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc</a></blockquote>
</div><br></div><br>_______________________________________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" target="_blank">https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
GPG me!!<br><br>gpg --keyserver <a href="http://pool.sks-keyservers.net" target="_blank">pool.sks-keyservers.net</a> --recv-keys F186197B<br><br>
</div>