Nadav Aviv asked:
I’m trying to route traffic in my nginx proxy according to a received header.
My infrastructure is built in a way that traffic is being sent to the proxy with a header that contains part of the address that I want to route to.
Here is my code:
upstream target {
server $http_address.domain.com max_fails=3 fail_timeout=60;
}
server {
listen 80 default_server;
location / {
proxy_pass http://target;
proxy_redirect off;
proxy_http_version 1.1;
}
}
Unfortunately I’m getting the following error when starting nginx:
host not found in upstream "$http_address.domain.com"
Is there any way I can dynamically edit the server’s target url according to a given header?
Thanks.
My answer:
An upstream
server
doesn’t accept variables, but you can use it in proxy_pass
directly. (And it doesn’t really make that much sense to define an upstream
with only one server
.) For example:
proxy_pass http://$http_address.example.com;
View the full question and any other answers on Server Fault.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.