choosing backend based on header value
Alexandr Gomoliako
zzz at zzz.org.ua
Mon Sep 3 23:19:11 UTC 2012
> 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;
}
}
More information about the nginx
mailing list