Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Varnish: Misc

varnish multiple backends question about POST

 

 

Varnish misc RSS feed   Index | Next | Previous | View Threaded


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


gkaragiannidis at dolnet

Jul 24, 2012, 8:26 AM

Post #2 of 4 (190 views)
Permalink
varnish multiple backends question about POST [In reply to]

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


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


gkaragiannidis at dolnet

Jul 24, 2012, 8:33 AM

Post #3 of 4 (193 views)
Permalink
varnish multiple backends question about POST [In reply to]

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


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


gkaragiannidis at dolnet

Jul 24, 2012, 9:06 AM

Post #4 of 4 (215 views)
Permalink
varnish multiple backends question about POST [In reply to]

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


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

Varnish misc RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.