3 votos

Después de la actualización de ubuntu 14.04 a 16.04, nginx error 502: bad gateway hasta nginx se reinicia

He investigado este problema, pero en la mayoría de los casos la causa del error 502 es un mal configurado nginx.conf o aguas arriba de servicio. Creo que esto es diferente..

Como sugiere el título, he actualizado a ubuntu server 14.04 a 16.04. Puedo usar nginx como mi servidor web, y también estoy ejecutando java/tomcat server, el programa de instalación en mi nginx config como un proxy_pass.

A partir de la actualización, cada vez que el servidor se inicia nginx muestra error 502: Bad Gateway cuando intenta conectarse a la proxy_pass sitio. Todos los otros sitios especificados en mi config funcionan como se esperaba.

Es posible que el orden en que se inician los servicios podría causar una persistente error 502?

Para resolver el problema, debo sudo systemctl restart nginx, después de lo cual, el proxy_pass servicio funciona como se esperaba, hasta el siguiente reinicio.

Desde el error.registro:

2018/01/24 11:33:20 [error] 1886#1886: *202 connect() failed (111: Connection refused) while connecting to upstream, client: 10.0.0.1, server: localhost, request: "GET /radio/rest2/savePlayQueue.view?u=user&p=enc:xxxxxxxx&v=2.0.0&c=DSub&id=0000&current=0000&position=0 HTTP/1.1", upstream: "http://[::1]:4040/radio/rest2/savePlayQueue.view?u=user&p=enc:xxxxxxxx&v=2.0.0&c=DSub&id=0000&current=0000&position=0", host: "www.myhostname.tld"

En el momento cuando este error se genera por nginx, que fue capaz de utilizar el lince de ese servidor para conectar a localhost:4040/radio, y fue servido el contenido apropiado. Incluso después de que el error 502 queda cuando se conecta a través de nginx.

No hay definidos anteriormente bloque para esto, sin embargo la ubicación del bloque es:

location ^~ /radio/ {
        proxy_pass              http://localhost:4040;
        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_http_version      1.1;
        proxy_set_header        Connection      "";
#        health_check;       # nginx: [emerg] unknown directive "health_check"
}

Yo no quiero tener que reiniciar nginx cada vez que arranque. ¿Cómo puedo resolver este problema?

2voto

MikeyB Puntos 26178

upstream: "http://[::1]:4040/…

Sus aguas arriba, es probable que sólo se escucha en IPv4 localhost (127.0.0.1:4040), mientras que nginx está tratando de conectarse a IPv6 localhost ([::1]:4040).

lynx funciona porque se trata tanto.

ADIVINAR: nginx puede estar fallando porque se trata tanto en el inicio, ambos fallan, entonces se pega con IPv6 a partir de ahí.

CORRECCIÓN: cambio de arriba a utilizar 127.0.0.1 de forma explícita o cambiar la parte de arriba para escuchar en IPv4 e IPv6.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: