Você especifica a variável como $1
(de regexp) ou $region
do comando set
.
Isso deve funcionar na sua configuração:
proxy_pass http://upstream_$region_console_f485c00e45256742e2cc641db834b150;
Acabei de testar com este exemplo de configuração:
upstream upstream_uba1_console_f485c00e45256742e2cc641db834b150 { ip_hash; server 127.0.0.1:39443; }
upstream upstream_uba2_console_f485c00e45256742e2cc641db834b150 { ip_hash; server 127.0.0.1:39444; }
server {
listen 80;
location ~ ^/([^\/]*) {
proxy_pass http://upstream_$1_console_f485c00e45256742e2cc641db834b150;
}
}
server {
listen 39443;
root /var/www/;
location / {
try_files /url1.html $uri;
}
}
server {
listen 39444;
root /var/www/;
location / {
try_files /url2.html $uri;
}
}
Arquivos no sistema de arquivos:
/var/www/url1.html -> content url 1
/var/www/url2.html -> content url 2
Acesso através de:
http://localhost/uba1/ -> url1.html
http://localhost/uba2/ -> url2.html
Eu fiz tudo com backends locais, mas vou trabalhar com o seu também.
Também tive que remover alguns parâmetros do seu bloco upstream
para que funcionasse.