
gkaragiannidis at dolnet
Jul 24, 2012, 9:02 AM
Post #1 of 4
(210 views)
Permalink
|
|
varnish multiple backends question about POST
|
|
Hi! I have setup one varnish server for multiple sites running on multiple backends. For example: Domains: domainA.com, domainB.com running on backend: backendC Domains: domain0.com, domain1.com running on backend: backend-10 Everything else goes to default backend DC I also have the following setup In sub vcl_recv { if (req.http.host ~ " domainA.com$") { unset req.http.cookie; set req.backend = backendC; return (lookup); } else if (req.http.host ~ "domainB.com$") { set req.backend = backendC; if ( req.request == "POST" ) { return(pass); } return (lookup); } else if (req.http.host ~ "domain0.com$") { set req.backend = backend-10; if ( req.request == "POST" ) { return(pass); } return (lookup); } else { # Use the default backend for all other requests set req.backend = default; return (lookup); } return (lookup); } My problem is that I have POST requests for both domainB.com and domain0.com and each time I have to use set req.backend = if ( req.request == "POST" ) { return(pass); in order to pass the request to the correct backend Is there a simpler way of handling post requests to different domains? ---------------------------------------------------------------------------- --------------------------------- And a second question if I use if (req.request != "GET" && req.request != "HEAD") { // Not cacheable by default if NOT GET,HEAD return(pass); } Then POST requests are passed to the default backend which, of course gives me an 404 error! Thanks in advance Yiannis
|