Eu encontrei a solução aqui:
location / {
set $backend "m1.local";
proxy_pass http://$backend;
}
Eu tenho redirecionamento nginx como:
server {
listen 127.0.0.1:80;
server_name myname.local
location / {
proxy_pass http://m1.local:8080;
}
}
}
Funciona bem.
Mas após o endereço IP para m1.local foi alterado - nginx start para retornar "gateway inválido".
Parece que tem endereço IP em cache para m1.local.
nslookup m1.local do computador nginx mostra o valor correto e reinicia o nginx para reparar a situação.
Como dizer nginx que não deve armazenar em cache ip's para o nome dns?
Eu encontrei a solução aqui:
location / {
set $backend "m1.local";
proxy_pass http://$backend;
}
O Nginx está fazendo essas pesquisas de nome no início e, em seguida, mantém apenas os IPs. Isso significa que nem manterá os nomes na memória durante o tempo de execução para procurá-los novamente.
Se você alterar as entradas de DNS a que se refere no conf Nginx, poderá fazer um nginx -s reload
para recarregar a configuração, o que inclui refazer as pesquisas de DNS.