«Le test du fichier de configuration /etc/nginx/nginx.conf a échoué»: Comment puis-je savoir pourquoi cela s'est produit?

91

Je suis un noob nginx essayant ce tutoriel sur nginx 1.1.19 sur ubuntu 12.04. J'ai ce fichier de configuration nginx.

Lorsque j'exécute cette commande, le test échoue:

$ sudo service nginx restart
Restarting nginx: nginx: [crit] pread() "/etc/nginx/sites-enabled/csv" failed (21: Is a directory)
nginx: configuration file /etc/nginx/nginx.conf test failed

Comment savoir pourquoi le test nginx.conf a échoué?

bernie2436
la source
1
Avez-vous toujours "default" dans votre "/ etc / ngix / sites-enabled"?
RickyA
@RickyA voulez-vous dire le fichier "par défaut"? Oui, j'ai toujours ce fichier dans ce répertoire. J'ai déplacé ce fichier et exécuté nginx -s reload et je vois toujours le même comportement du serveur
bernie2436
l'erreur mentionne le fichier csv, vérifiez ce fichier dans les sites activés
Mohammad AbuShady
1
Ad sudo service nginx restart) Nginx dispose également d'un outil CLI: nginx -s reloadpour recharger la configuration au cas où elle changerait. C'est beaucoup plus rapide.
kaiser le

Réponses:

168

sudo nginx -t devrait tester tous les fichiers et renvoyer les erreurs et les emplacements d'avertissement

Mohammad AbuShady
la source
1
il ne teste qu'un seul fichier, c'est-à-dire: /etc/nginx/nginx.conf mais comment puis-je tester les sites activés / par défaut?
aitchkhan
4
il pense qu'il testerait tous, tant qu'ils sont inclus dans le fichier par défaut (ce que je suppose qu'ils sont?), si vous n'utilisez pas le chemin du fichier de configuration par défaut, essayez d'utiliser -cflag, doncnginx -c /etc/nginx/sites-enabled/default -t
Mohammad AbuShady
Peut confirmer ce que @MohammadAbuShady a dit. Bien que la page de manuel pour -tindique un peu vaguement Ne pas exécuter, testez simplement le fichier de configuration. Le nginx vérifie la configuration pour la syntaxe correcte, puis essaie d'ouvrir les fichiers référencés dans la configuration. les fichiers ne sont pas seulement vérifiés pour leur existence, mais analysés. Comme prévu, le code de sortie est 1 si une erreur est trouvée et 0 sinon.
Günther Eberl
5

Ces commandes particulières ont fonctionné pour moi. sudo apt-get remove --purge nginx nginx-full nginx-common

et sudo apt-get install nginx

crédit à cette réponse sur stackexchnage

Eric
la source