choosing backend based on header value
Harish Sundararaj
tuxtoti at gmail.com
Mon Sep 3 23:29:21 UTC 2012
Hi Alexandr,
This is exactly what I thought. But then is there a way without
explicitly specifying the nodes.?
I understand the pitfalls, its just to be used for testing purposes.
(like sending a request to a test server)
Thanks
Harish
On Tue, Sep 4, 2012 at 4:49 AM, Alexandr Gomoliako <zzz at zzz.org.ua> wrote:
>> I have a requirement wherein I need to choose a backend based on the
>> value of a header sent by the client. But in all other cases where the
>> header is not set I would like to use the available upstream block
>> with whatever logic (wr/r) it is set to.
>>
>> For eg:
>>
>> upstream backend_boxes {
>> server 192.168.1.30:9001 weight=25;
>> server 192.168.1.45:9001 weight=75;
>> }
>>
>> locatinon ~ ^/test {
>> proxy_pass http://backend_boxes;
>> }
>>
>> But, say If X-Caching-Node is set to 192.168.1.50:9001 , I want the
>> /test request to go to 192.168.1.50:9001.
>>
>> I guess that should be possible?
>
> Sure. Be careful though, specify allowed nodes explicitly.
>
> map $http_x_caching_node $x {
> default backend_boxes;
> 192.168.1.50:9001 192.168.1.50:9001;
> }
>
> server {
> location /test/ {
> proxy_pass http://$x;
> }
> }
>
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx
More information about the nginx
mailing list