Welcome! Log In Create A New Profile

Advanced

Re: nginx stream module, dynamic upstream

Maxim Dounin
January 12, 2023 12:34PM
Hello!

On Thu, Jan 12, 2023 at 04:37:40PM +0300, Sergey K wrote:

> В документации сказано, что можно использовать upstream с переменными
> (stream module).
>
> ----
> proxy_pass $upstream;
> В этом случае имя сервера ищется среди описанных групп серверов и если не
> найдено, то определяется с помощью resolver’а.
> ----
>
> Однако, в случае изменения айпи адреса для postgres.local nginx не видит
> изменений и продолжает обращаться к старому айпи адресу апстрима.
>
> nginx/1.18.0
>
> ----
> upstream postgres {
> server postgres.local:5432;
> }
>
> map stream $upstream {
> default postgres;
> }
>
> server {
> listen 5432;
>
> access_log /var/log/nginx/stream.access.log proxy buffer=32k
> flush=10s;
>
> proxy_pass $upstream;
> resolver 10.0.0.2 valid=30s;
> }
> ----
>
> похоже на баг либо я делаю что-то не верно?

У вас имя сервера, указанного в proxy_pass, ищется среди описанных
групп серверов, и оно найдено - в конфигурации есть upstream с
именем "postgres". Соответственно resolver не используется.

Что до имени сервера, указанного в группе серверов "postgres", а
именно "postgres.local", то это имя по общим правилам
преобразуется в IP-адреса при загрузке конфигурации.

Если хочется, чтобы nginx разнимался преобразованием имени в
IP-адреса при каждом обращении, то не надо описывать upstream, а
следует просто указать имя сервера с использованием переменных,
как-то так:

map stream $upstream { default "postgres.local:5432"; }

server {
...
proxy_pass $upstream;
resolver 10.0.0.2 valid=30s;
}

--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
https://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

nginx stream module, dynamic upstream

Sergey K January 12, 2023 08:38AM

Re: nginx stream module, dynamic upstream

Илья Шипицин January 12, 2023 08:42AM

Re: nginx stream module, dynamic upstream

Maxim Dounin January 12, 2023 12:34PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 203
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready