Nginx ne parvient pas à recharger - comment dépister pourquoi?

96

Bonjour, mon serveur Nginx fonctionne très bien sur le serveur Ubuntu 12.04 depuis un moment.

Je me suis peu à peu attardé sur divers éléments et je suis allé aussi loin que d’optimiser les temps de chargement de ma page wordpress.

Après avoir apporté quelques modifications à mon fichier hosts, j'ai décidé de:

sudo /etc/init.d/nginx reload

À quoi je reçois:

  • Rechargement de la configuration de nginx nginx [échec]

Aucune information supplémentaire ou raisonnement n'est donné. Comment puis-je redémarrer mon serveur afin qu'il imprime toutes les déclarations d'erreur lors du rechargement afin que je puisse commencer à localiser l'erreur?

Pour une question bonus:

Pour les administrateurs systèmes de Nginx, lorsque vous avez apporté de nombreux changements aux hôtes et que vous avez ajouté quelques éléments, et que votre serveur nginx ne se recharge plus (en fait, tout semble toujours en cours d'exécution!) Comment commencer votre approche d'isolation pourquoi ou commencer à décomposer les choses pour déboguer!

Huw
la source
4
Vérifiez votre syntaxe avec sudo nginx -t(ou sudo nginx -p /etc/nginx -c nginx.conf/etc/nginxest votre préfixe de configuration et nginx.confle fichier de configuration principal).
Lekensteyn
sudo nginx -s reload a également semblé me ​​donner une lecture!
mardi

Réponses:

145

Recherchez dans syslog (/ var / log / syslog) des messages sur les problèmes de fichiers de configuration.

À partir de la ligne de commande, vous pouvez exécuter:

nginx -c /etc/nginx/nginx.conf -t

pour que nginx vérifie votre configuration à la recherche d’erreurs.

Dlloyd
la source
ah ah! très utile, il semble que je reçois: emplacement "/ blog / wp-admin" est situé à l'extérieur de "/blog/.*\.php$" dans /etc/nginx/site-configs/wordpress.conf:1 ... intéressant , me donne quelque chose à continuer!
mardi
2
ARGH! Trois heures de recherches et il s’avère que j’en ai manqué un; Merci pour toute l'aide qui s'est avérée essentielle pour le retrouver. Incidemment, si quelqu'un finit par se poser cette question après avoir suivi les publications Web d'Ars Technica. Je pense que je les ai passées au peigne fin maintenant!
mardi
4
exécuter cette commande me donne nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulet pourtant je ne peux toujours pas faire démarrer nginx
Bill Garrison
1
@ BillGarrison consultez syslog et le journal des erreurs nginx pour plus d'informations
Dlloyd
44

Exécutez cette commande, vous pouvez trouver le problème.

sudo nginx -t
Nanhe Kumar
la source
7

Vous devriez probablement vérifier les erreurs dans /var/log/nginx/error.log.

Dans mon cas, je n'ai pas ajouté le port pour ipv6. Vous devriez aussi faire ceci (si vous utilisez nginx sur un port autre que 80): listen [::]:8000 default_server ipv6only=on;

Arvind07
la source
1
Remarque: si vos autorisations sont incorrectes /var/log/nginx/error.log, nginx ne pourra pas écrire l’erreur et échouera en silence. Vérifier votre configuration comme dans la réponse acceptée ( nginx -c /etc/nginx/nginx.conf -t) aidera.
user898763452
5

J'ai lancé ces commandes pour que nginx soit rétabli et fonctionne:

# remove nginx conf files
apt-get purge nginx

# reinstall
apt-get install nginx

# make sure the default site is enabled
ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

# start nginx
sudo /etc/init.d/nginx start 

Nginx travaille maintenant !!

Aaron Lelevier
la source
2
Vous n'êtes pas obligé d'enlever et de purger, il vous suffit de purger. Et il est difficile de savoir si cela va répondre à la question car la purge supprimera tous les fichiers de configuration.
Panthère
1
Idéalement - et pour les autres utilisateurs, j'aurais préféré obtenir le nombre maximal de lectures permettant de savoir où la défaillance se produisait et réparer mon installation actuelle au lieu de le purger et de recommencer à zéro
mardi
1
@ bodhi.zazen j'ai corrigé ma réponse. Et quant à ce que "Huw" a dit, je suis d'accord. C'est juste que j'étais au début de l'installation et de la configuration, nginxdonc ce n'était pas grave de simplement l'enlever et de recommencer à la place au lieu de retracer l'erreur. Merci à vous deux pour votre insite.
Aaron Lelevier le
dans mon cas, je devais seulement commencer à utiliser cette commande sudo /etc/init.d/nginx start
Sizzling Code
3

Vérifiez votre /etc/nginx/sites-available/defaultcopie ou celle que vous utilisez, et assurez-vous de supprimer #tout commentaire dont }vous pourriez avoir besoin par rapport à {celui qui était susceptible d'être commenté. C'était mon problème.

les kenisfis
la source
2

Besoin de purger nginx puis tapez en ligne de commande:

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default
utilisateur445400
la source
Tu veux dire apt-get purge?
RolandiXor
2

faire une réouverture de tous les fichiers, en utilisant

nginx -s reopen

puis utiliser

nginx -s reload

Comme l'aide de nginx le prouve, recharger le nginx en envoyant le signal au maître process.it devrait fonctionner.

Requête: veuillez ne pas donner de purgecommandes sans précaution, car cela pourrait poser problème aux débutants (toutes les configurations seront perdues) ... Un gros problème.

Anto
la source
1

Si cela vous donne de telles erreurs, vous pouvez vérifier journalctl -xe.
Il contient une foule d'informations sur ce qui s'est passé dans une affaire de système d'exploitation.
vous pouvez trouver la ligne ou tout simplement journalctl -xe | grep nginxpour savoir ce qui est arrivé à nginx quand il a essayé de se lancer.

AmirHossein
la source