“Error de prueba del archivo de configuración /etc/nginx/nginx.conf”: ¿Cómo sé por qué sucedió esto?

91

Soy un novato de nginx probando este tutorial en nginx 1.1.19 en ubuntu 12.04. Tengo este archivo de configuración nginx.

Cuando ejecuto este comando, la prueba falla:

$ 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

¿Cómo sé por qué falló la prueba nginx.conf?

bernie2436
fuente
1
¿Todavía tiene "predeterminado" en su "/ etc / ngix / sites-enabled"?
RickyA
@RickyA ¿te refieres al archivo "predeterminado"? Sí, todavía tengo ese archivo ubicado en ese directorio.
Moví
el error menciona el archivo csv, verifique ese archivo en sitios habilitados
Mohammad AbuShady
1
Ad sudo service nginx restart) Nginx también tiene una herramienta CLI: nginx -s reloadpara volver a cargar la configuración en caso de que cambie. Eso es mucho más rápido.
Kaiser

Respuestas:

168

sudo nginx -t debe probar todos los archivos y devolver ubicaciones de errores y advertencias

Mohammad AbuShady
fuente
1
está probando solo un archivo, es decir: /etc/nginx/nginx.conf, pero ¿cómo puedo probar sitios habilitados / predeterminados?
aitchkhan
4
Creo que probaría todos, siempre que estén incluidos en el archivo predeterminado (¿que supongo que sí?), Si no está utilizando la ruta del archivo de configuración predeterminada, intente usar la -cbandera, entoncesnginx -c /etc/nginx/sites-enabled/default -t
Mohammad AbuShady
Puedo confirmar lo que dijo @MohammadAbuShady. Aunque la página de manual de -tdice vagamente No ejecutar, simplemente pruebe el archivo de configuración. El nginx verifica la configuración para la sintaxis correcta y luego intenta abrir archivos referidos en la configuración. los archivos no solo se comprueban para su existencia, sino que se analizan. Como se esperaba, el código de salida es 1 si se encuentra un error y 0 en caso contrario.
Günther Eberl
5

Estos comandos en particular funcionaron para mí. sudo apt-get remove --purge nginx nginx-full nginx-common

y sudo apt-get install nginx

crédito a esta respuesta en stackexchnage

Eric
fuente