Welcome! Log In Create A New Profile

Advanced

Re: Switching backends based on a cookie

merlin corey
January 28, 2010 07:28PM
On Thu, Jan 28, 2010 at 4:03 PM, Marcus Clyne <ngx.eugaia@gmail.com> wrote:
> Hi,
>
> saltyflorida wrote:
>>
>> Is it possible to switch backend clusters of servers based on a cookie?
>>
>> I would like to set a cookie named "env" and do something like this:
>>
>>        if ($http_cookie ~* "env=testing(;|$)") {
>>            proxy_pass http://backend_testing;
>>        }
>>        if ($http_cookie ~* "env=staging(;|$)") {
>>            proxy_pass http://backend_staging;
>>        }
>>        if ($http_cookie ~* "env=production(;|$)") {
>>            proxy_pass http://backend_production;
>>        }
>>
>> However the "proxy_pass" directive is not allowed inside an "if". Is there
>> another way I can approach this?
>>
>>
>
> Take a look at the map module :
>
> http://wiki.nginx.org/NginxHttpMapModule
>
> One possibility would be :
>
> http {
>
> map  $cookie_env  $backend {
>
>   testing      http://backend_testing;
>   staging      http://backend_staging;
>   production   http://backend_production;
> }
>
> server {
>   ...
>   proxy_pass   $backend;
>
> }
>
> }
>
> Marcus.
>
>
> _______________________________________________
> nginx mailing list
> nginx@nginx.org
> http://nginx.org/mailman/listinfo/nginx
>

Marcus' solution should be just fine, but I feel I must ask an
important question:

Doesn't it make more sense to have production, static, and dev as
separate server blocks entirely with their own hostnames? This is, at
the least, traditional :).

-- Merlin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://nginx.org/mailman/listinfo/nginx
Subject Author Posted

Switching backends based on a cookie

saltyflorida January 28, 2010 06:43PM

Re: Switching backends based on a cookie

Eugaia January 28, 2010 07:06PM

Re: Switching backends based on a cookie

merlin corey January 28, 2010 07:28PM

Re: Switching backends based on a cookie

merlin corey January 28, 2010 07:30PM

Re: Switching backends based on a cookie

saltyflorida January 28, 2010 09:01PM

Re: Switching backends based on a cookie

Eugaia January 28, 2010 07:54PM

Re: Switching backends based on a cookie

merlin corey January 29, 2010 12:44PM

Re: Switching backends based on a cookie

saltyflorida January 28, 2010 07:57PM

Re: Switching backends based on a cookie

Eugaia January 28, 2010 09:54PM

Re: Switching backends based on a cookie

saltyflorida January 29, 2010 02:05AM

Re: Switching backends based on a cookie

saltyflorida January 29, 2010 02:13AM

Re: Switching backends based on a cookie

Eugaia January 29, 2010 05:58AM

Re: Switching backends based on a cookie

saltyflorida February 03, 2010 12:31AM

Re: Switching backends based on a cookie

saltyflorida January 28, 2010 08:51PM

Re: Switching backends based on a cookie

Piotr Sikora January 28, 2010 09:10PM

Re: Switching backends based on a cookie

saltyflorida January 28, 2010 09:18PM

Re: Switching backends based on a cookie

Piotr Sikora January 28, 2010 09:20PM

Re: Switching backends based on a cookie

Laurence Rowe January 29, 2010 02:24PM

Re: Switching backends based on a cookie

Eugaia January 29, 2010 06:04PM

Re: Switching backends based on a cookie

Laurence Rowe January 30, 2010 01:50PM

Re: Switching backends based on a cookie

Eugaia January 30, 2010 07:04PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 149
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready