Существует Nginx балансер в нем прописаны несколько бэкендов.
На бэках находятся сайты, к которым можно обратиться, указав в части url определенную аббревиатуру. По сути, это отдельные сайты со своими собственными именами.
Задача, на балансере нужно настроить возможность отправлять запрос на нужный сайт бэкенда в зависимости от получаемого url.
В моей конфигурации есть проблема, я пытаюсь задать пользовательскую переменную в Nginx на балансере, которая содержит в себе эту аббревиатуру (которую нужно использовать в url для бэков) в одной секции server и передать ее в другую секцию server, все это в одном конфигурационном файле. На мой взгляд данное решение самое простое, но похоже такой способ в Nginx не работает. В итоге переменная ничего не отдает, то есть данные из секции в секцию не передаются.
В логах: http://.site.back1.example.org
### Balancing
server {
listen 80;
server_name "~(?<release>[a-z0-9\-\.]+)\.site\.example\.org$";
set $site_release $release;
location / {
proxy_http_version 1.1;
proxy_pass http://upstr_release_site_XXXX_X/;
}
}
### Backend
server {
listen unix:/tmp/nginx/nginx_release_XXXX_X.site.back1.socket;
access_log off;
location / {
proxy_http_version 1.1;
proxy_pass http://$site_release.site.back1.example.org/;
}
}
Подскажите пожалуйста, какое решение можно применить в данном случае?