web-dev-qa-db-fra.com

Après la mise à niveau de 14.04 à 16.04, erreur nginx 502: mauvaise passerelle jusqu'au redémarrage de nginx

Comme le titre l'indique, j'ai mis à jour le serveur Ubuntu 14.04 à 16.04. J'utilise nginx comme serveur Web et j'utilise également un serveur Java/Tomcat, configuré dans mon config nginx en tant que proxy_pass.

Depuis la mise à niveau, chaque fois que le serveur démarre, nginx affiche l’erreur 502: Bad Gateway lors de la tentative de connexion au site proxy_pass. Tous les autres sites spécifiés dans ma configuration fonctionnent comme prévu.

Pour résoudre le problème, je dois Sudo systemctl restart nginx, après quoi le service proxy_pass fonctionne.

Je ne veux pas avoir à redémarrer nginx à chaque démarrage. Comment puis-je résoudre ce problème?

1
chrismeu

J'ai posté cette question à serverfault après 24 heures et je vais inclure ici la résolution de mon problème particulier pour la postérité.

Dans ma configuration, la directive proxy_pass du bloc d’emplacement nginx approprié indiquait:

proxy_pass http://localhost:4040;

Cependant, le service en amont était en fait lié à l'adresse ipv4 et son démarrage au démarrage est plus lent que nginx.

Lorsque nginx a vérifié l'état du serveur en amont, sa connexion a été refusée. Par la suite, lorsque Nginx a tenté de vérifier à nouveau l’état du serveur en amont, il n’a continué à vérifier que l’adresse IPV6 [:: 1].

Pour résoudre le problème, j'ai spécifié l'adresse ipv4 (127.0.0.1) au lieu de localhost, forçant ainsi nginx à utiliser uniquement ipv4. Tout fonctionne comme prévu, maintenant.

0
chrismeu