Fondo:
Uso una estructura Nginx+NodeJS para ejecutar el sitio web. El servidor tiene bastante tráfico como 300 personas concurrentes en línea. Visitando todo tipo de páginas. Y uso pm2 para administrar mis aplicaciones de nodo.
Problema:
Sin embargo, cuando reinicio el servidor del nodo con pm2 restart xxx , en un período corto (como 15 segundos), los usuarios encontrarán un error 502 . Y en consecuencia, hay "conexión () fallida (111: conexión rechazada)" en el registro.
De acuerdo con otra pregunta sobre SO.
Un error 502 Bad Gateway generalmente sugiere que el proxy (Nginx en el caso de NodeJS) no puede encontrar un destino para enrutar el tráfico.
Entonces, supongo que el error ocurre debido al momento en que un usuario solicita el servidor mientras el Nodo no está listo para su negocio. Así que mi Nginx no pudo "contactar" con mis nodos y arrojó un error 502.
¿Hay alguna forma de arreglar esto?
Si desea continuar sirviendo a sus usuarios mientras reinicia su servidor Node.js, necesita un segundo servidor Node.js. Más precisamente:
node myapp.js se ejecuta y escucha en el puerto A. Nginx enruta el tráfico al puerto A.node mynewapp.js , que escucha en el puerto B. Mientras lo hace, el tráfico aún se enruta al puerto A.node mynewapp.js está en funcionamiento, cambia Nginx para que enrute el tráfico al puerto B.node myapp.js .Tenga en cuenta dos peligros potenciales con este enfoque: