Hi, all.

I'm experimenting with the hash director but the current documentation[1] is 
brief and I need some help. (background: our application servers do some local 
fragment caching and this is more efficient if the URLs go to servers which 
already have the necessary fragments).

As desired, the hash director is selecting the same backend for a given URL.  
However, when the backend goes sick, I expect varnish to pick a healthy one; 
instead I get a 503 due to no backend available.

This is the backend definition:

director example hash {
        .retries = 5;
        { .backend = server1; .weight = 1; }
(...)
        { .backend = server8; .weight = 1; }
}

I assumed the "retries" parameter in the director definition would try 
different backends; it might be that it retries the same backend.

It could be relevant that my vcl_fetch has:

sub vcl_fetch {
(...)
        # If status not one of the below try again (up to max_restarts)
        if (
        beresp.status != 200 && beresp.status != 403 && beresp.status != 404 &&
        beresp.status != 301 && beresp.status != 302 && beresp.status != 307 &&
        beresp.status != 410) {
                if (req.http.X-Forwarded-Host) {
                         set req.http.Host = req.http.X-Forwarded-Host;
                }

                restart;
        }


To overcome this I thought about defining a random director with the same set 
of servers and, should the hash director fail, I'd update req.backend to use 
the random director.  I don't like this too much because it would double the 
number of health checks, which are not exactly cheap, and I would need to 
complicate the VCL a bit more.

Am I missing something?  Is there a better way of handling this situation?


Thanks.


[1] https://www.varnish-cache.org/docs/2.1/reference/vcl.html#the-hash-director
  

Thiago Figueiro
Technical Operations Manager

Westfield Digital Business
T +61 (0)2 9358 7123
M +61 (0)405 700 814
W www.westfield.com.au
E [email protected]






______________________________________________________
    CONFIDENTIALITY NOTICE    
This electronic mail message, including any and/or all attachments, is for the 
sole use of the intended recipient(s), and may contain confidential and/or 
privileged information, pertaining to business conducted under the direction 
and supervision of the sending organization. All electronic mail messages, 
which may have been established as expressed views and/or opinions (stated 
either within the electronic mail message or any of its attachments), are left 
to the sole responsibility of that of the sender, and are not necessarily 
attributed to the sending organization. Unauthorized interception, review, use, 
disclosure or distribution of any such information contained within this 
electronic mail message and/or its attachment(s), is (are) strictly prohibited. 
If you are not the intended recipient, please contact the sender by replying to 
this electronic mail message, along with the destruction all copies of the 
original electronic mail message (along with any attachments).
______________________________________________________

_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to