Welcome! Log In Create A New Profile

Advanced

Nginx map - use variable multiple times or use multiple variables

December 05, 2019 01:12PM
Hello,

We use Nginx map module to sent traffic to different upstreams based on the HTTP header:

map $http_flow $flow_upstream {
default "http://flow-dev";
prod "http://flow-prod";
test "http://flow-test";
dev "http://flow-dev";
}

location / {
proxy_read_timeout 5s;
proxy_pass $flow_upstream;
}

Now, we want to define a different timeouts to different flows:

map $http_flow $read_timeout {
default 15s;
prod 5s;
test 10s;
dev 15s;
}

location / {
proxy_read_timeout $read_timeout;
proxy_pass $flow_upstream;
}

Bunt Nginx config test show the error here:
nginx -t
nginx: [emerg] "proxy_send_timeout" directive invalid value in /etc/nginx/conf.d/flow.conf:19
nginx: configuration file /etc/nginx/nginx.conf test failed

Can we use map in such a way?

Or maybe something like this:
map $http_flow $flow_upstream $read_timeout {
default "http://flow-dev" "15s";
prod "http://flow-prod" "5s";
test "http://flow-test" "10s";
dev "http://flow-dev" "15s";
}

Thank you!
Subject Author Posted

Nginx map - use variable multiple times or use multiple variables

stmx38 December 05, 2019 01:12PM

Re: Nginx map - use variable multiple times or use multiple variables

Maxim Dounin December 05, 2019 01:28PM

Re: Nginx map - use variable multiple times or use multiple variables

stmx38 December 05, 2019 02:32PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 323
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready