Dirección ascendente extraña de Nginx después del reinicio de la aplicación

Dirección ascendente extraña de Nginx después del reinicio de la aplicación

Tengo una aplicación ejecutándose en un contenedor con un puerto expuesto 8082. También hay una configuración de nginx, parte de la cual se muestra a continuación. En una situación normal, veo upstream: 127.0.0.1:8082en el registro de acceso que es correcto. Pero cuando detengo el contenedor de la aplicación y lo inicio de nuevo, veo to: localhosten los registros durante unos 5 a 6 segundos, lo que genera un error 502 en el sitio. En este momento, la aplicación ya está activa y ejecutándose en el puerto 8082. ¿Por qué sucede esto?

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;

Respuesta1

Hoy en día localhostse entiende tanto el IPv4 127.0.0.1como el IPv6 ::1. Cuando NGINX reenvía tráfico al flujo ascendente, toma el nombre de host que usted proporcionó, lo que produce tanto IPv4 como IPv6, mientras que supongo que su flujo ascendente es solo IPv4.

Respuesta2

Parece que logré resolver el problema reemplazándolo proxy_pass http://localhost:8082;con proxy_pass http://127.0.0.1:8082;.

información relacionada