Nginx no se vuelve a cargar: ¿cómo rastrear por qué?

96

Hola, he tenido mi servidor Nginx funcionando muy bien en el servidor Ubuntu 12.04 por un tiempo.

Poco a poco he estado atornillando varios bits, y llegué a optimizar los tiempos de carga en mi página de wordpress.

Después de hacer algunos cambios en mi archivo de hosts, decidí:

sudo /etc/init.d/nginx reload

A lo que llego:

  • Recargando la configuración de nginx nginx [fail]

No se proporciona información adicional ni razonamiento. ¿Cómo puedo reiniciar mi servidor para que imprima cualquier declaración de error durante la recarga para poder comenzar a rastrear el error?

Para una pregunta extra:

Para esos administradores de sistemas de Nginx, cuando haya realizado un montón de cambios en los hosts y se haya agregado algunos bits más y de repente su servidor nginx no se vuelva a cargar (por cierto, ¡todo parece estar funcionando!) ¿Cómo comienza su enfoque para aislar? ¡Por qué o comenzar a descomponer las cosas para depurar!

Huw
fuente
44
Verifique su sintaxis con sudo nginx -t(o sudo nginx -p /etc/nginx -c nginx.confdónde /etc/nginxestá su prefijo de configuración y nginx.confel archivo de configuración principal).
Lekensteyn 05 de
¡sudo nginx -s reload también me dio una lectura!
Huw

Respuestas:

145

Verifique syslog (/ var / log / syslog) para ver si hay mensajes sobre problemas con el archivo de configuración.

Desde la línea de comandos puedes ejecutar:

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

para que nginx verifique su configuración en busca de errores.

Dlloyd
fuente
ah ja! parece muy útil: la ubicación "/ blog / wp-admin" está fuera de la ubicación "/blog/.*\.php$" en /etc/nginx/site-configs/wordpress.conf:1 ... interesante , me da algo para seguir!
Huw
2
ARGH! Tres horas de búsqueda y resulta que me había perdido un; Gracias por toda la ayuda, resultó esencial para rastrearlo. Por cierto, si alguien termina con esta pregunta después de seguir las publicaciones publicadas en la web de Ars Technica. ¡Creo que he pasado por ellos con un peine de dientes finos ahora!
Huw
44
ejecutar este comando me da nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfuly, sin embargo, todavía no puedo hacer que nginx comience
Bill Garrison
1
@BillGarrison verifique el syslog y el registro de errores nginx para obtener más información
Dlloyd
44

Ejecute este comando puede encontrar el problema.

sudo nginx -t
Nanhe Kumar
fuente
7

Probablemente deberías verificar si hay errores /var/log/nginx/error.log.

En mi caso no agregué el puerto para ipv6. También debe hacer esto (en caso de que esté ejecutando nginx en un puerto que no sea 80): listen [::]:8000 default_server ipv6only=on;

Arvind07
fuente
1
Nota: si sus permisos son incorrectos /var/log/nginx/error.log, nginx no podrá escribirle el error y fallará en silencio. Comprobar su configuración como en la respuesta aceptada ( nginx -c /etc/nginx/nginx.conf -t) ayudará.
user898763452
5

Ejecuté estos comandos para hacer que nginx volviera a funcionar:

# 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 ahora está funcionando!

Aaron Lelevier
fuente
2
No es necesario eliminar y purgar, solo purgar. Y es difícil saber si esto va a responder la pregunta, ya que la purga eliminará todos los archivos de configuración.
Panther
1
Idealmente, y para otros usuarios, hubiera preferido obtener la cantidad máxima de lectura en cuanto a dónde estaba ocurriendo la falla y reparar mi instalación actual en lugar de purgar y comenzar desde cero
Huw
1
@ bodhi.zazen Corregí mi respuesta. Y en cuanto a lo que dijo "Huw", estoy de acuerdo. Es solo que estaba al comienzo de la instalación y configuración, por nginxlo que no fue un gran problema simplemente eliminarlo y comenzar de nuevo en lugar de rastrear el error. Gracias a ambos por su insite.
Aaron Lelevier
en mi caso solo tuve que comenzar a usar este comando sudo /etc/init.d/nginx start
Sizzling Code
3

Verifique su /etc/nginx/sites-available/defaultcopia o la copia que esté utilizando, y asegúrese de descomentar (eliminar #) cualquier cosa }que pueda necesitar en relación con la {que probablemente no se haya comentado. Ese fue mi problema.

kenisfis
fuente
2

Necesita purgar nginx y luego escriba en la línea de comando:

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default
usuario445400
fuente
Qué quiere decir apt-get purge?
RolandiXor
2

vuelva a abrir todos los archivos, usando

nginx -s reopen

luego usa

nginx -s reload

Como la ayuda de nginx muestra que lo hará, vuelva a cargar el nginx enviando la señal al proceso maestro. Debería funcionar.

Solicitud: no proporcione purgecomandos sin precaución, ya que puede causar problemas a los principiantes (se perderán todas las configuraciones) ... UN GRAN problema.

Anto
fuente
1

Si le está dando tales errores, puede verificar journalctl -xe.
Tiene mucha información sobre lo que sucedió en un sistema operativo.
puede encontrar la línea o simplemente journalctl -xe | grep nginxencontrar lo que le sucedió a nginx cuando intentó ejecutarse.

AmirHossein
fuente