Endereço upstream estranho do Nginx após reinicialização do aplicativo

Endereço upstream estranho do Nginx após reinicialização do aplicativo

Tenho um aplicativo em execução em um contêiner com porta exposta 8082. Há também uma configuração nginx, parte da qual é mostrada abaixo. Em uma situação normal, vejo upstream: 127.0.0.1:8082no log de acesso o que está correto. Mas quando paro o contêiner do aplicativo e o inicio novamente, vejo to: localhostnos logs por cerca de 5 a 6 segundos, o que leva a um erro 502 no site. Neste momento, o aplicativo já está ativo e rodando na porta 8082. Por que isso acontece?

server {
    server_name acme.com;

    access_log /var/log/nginx/acme.log upstreamlog;

    location / {
       proxy_pass http://localhost:8082;
       proxy_next_upstream error timeout http_502;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Upgrade websocket;
       proxy_set_header Connection Upgrade;
    }


    listen 443 ssl; # managed by Certbot
    ... some other Certbot lines ...
}
> sudo nginx -T | grep acme.com
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    server_name acme.com;

Responder1

Hoje em dia, localhostsignifica tanto o IPv4 127.0.0.1quanto o IPv6 ::1. Quando o NGINX encaminha o tráfego para o upstream, ele usa o nome do host que você forneceu, o que gera IPv4 e IPv6, embora eu suponha que seu upstream seja apenas IPv4.

Responder2

Parece que consegui resolver o problema substituindo proxy_pass http://localhost:8082;por proxy_pass http://127.0.0.1:8082;.

informação relacionada