raven_kg@megaline.kg
September 08, 2022 05:58AM
08.09.2022 15:47, sunrules пишет:
> Существует 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/;
> }
> }
>
> Подскажите пожалуйста, какое решение можно применить в данном случае?
>
> Posted at Nginx Forum: https://forum.nginx.org/read.php?21,295146,295146#msg-295146
>
> _______________________________________________
> nginx-ru mailing list -- nginx-ru@nginx.org
> To unsubscribe send an email to nginx-ru-leave@nginx.org

Я бы покурил в сторону map. Пример с коленки, не уверен в 100%
работоспособности, но я бы опробовал что-то типа:

map $host $backend {

    default localhost;

     "~(?<release>[a-z0-9\-\.]+)\.site\.example\.org$"
$release.site.back1.example.org/;

}

...

proxy_pass http://$upstream;

_______________________________________________
nginx-ru mailing list -- nginx-ru@nginx.org
To unsubscribe send an email to nginx-ru-leave@nginx.org
Subject Author Posted

Пользовательская переменная между секциями server

sunrules September 08, 2022 05:47AM

Re: Пользовательская переменная между секциями server

raven_kg@megaline.kg September 08, 2022 05:58AM

Re: Пользовательская переменная между секциями server

sunrules September 09, 2022 03:46AM

Re: Пользовательская переменная между секциями server

Maxim Dounin September 10, 2022 01:18PM

Re: Пользовательская переменная между секциями server

sunrules September 12, 2022 06:37AM

Re: Пользовательская переменная между секциями server

Maxim K September 12, 2022 08:08AM

Re: Пользовательская переменная между секциями server

sunrules September 12, 2022 09:11AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 317
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