nginx se agota al iniciar

nginx se agota al iniciar

Lo he instalado nginxusando esta sources.list.dentrada:

deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx

La versión de nginx es 1.12.2-1~xenial. El servidor ejecuta Ubuntu 16.04 LTS, con kernel 4.4.0-36-generic.

Mi problema es que el nginxdemonio no se inicia:

$ sudo systemctl start nginx
Job for nginx.service failed because a timeout was exceeded. See "systemctl status nginx.service" and "journalctl -xe" for details.

Lamentablemente, estos registros no proporcionan mucha información:

$ sudo journalctl -xe
Feb 05 10:43:50 SERVERNAME nginx[17035]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Feb 05 10:43:50 SERVERNAME nginx[17035]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Feb 05 10:45:21 SERVERNAME systemd[1]: nginx.service: Start operation timed out. Terminating.
Feb 05 10:45:21 SERVERNAME systemd[1]: Failed to start nginx - high performance web server.
-- Subject: Unit nginx.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit nginx.service has failed.
--
-- The result is failed.
Feb 05 10:45:21 SERVERNAME systemd[1]: nginx.service: Unit entered failed state.
Feb 05 10:45:21 SERVERNAME systemd[1]: nginx.service: Failed with result 'timeout'.

Por lo que puedo decir,De hecho, nginx se inicia correctamente.. Es como si el proceso principal no recibiera correctamente el mensaje "Estoy iniciado" de sus procesos secundarios, siendo el problema. Cuando se está ejecutando (systemd esperando a que se inicie), puedo rizarlo exitosamente de esta manera:

$ curl http://localhost:8000
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.12.2</center>
</body>
</html>

Me siento perdido en esto, aparte de probar quizás otra nginxversión o algo así. ¿Algunas ideas? Podría reiniciar el servidor pero parece una tontería en un servidor Linux.

Actualización 9:56 UTC: Probado con 1.13.8-1~xenialel mismo problema.

Respuesta1

Finalmente encontré el problema, era una tontería...

Comencé mi nginxconfiguración copiando la configuración de un contenedor Docker, que tenía esta configuración en su nginxconfiguración:

daemon off;

Esto estaba justo en el escenario de Docker (donde el nginxproceso se ejecutaba con runit, es decir, ningún systemdestilo init lo controlaba). Tenía el efecto de que nginxnunca se demonizaría y devolvería el control a systemd -> se trataría como "se agotó el tiempo de espera con problema desconocido", y systemdlo mataría.

Entonces, esto terminó siendo un simple error de configuración. Quería publicarlo aquí, ya que podría ayudar a otros que también cometen este torpe error. :-)

Detalles completos sobre esta palabra clave:http://nginx.org/en/docs/ngx_core_module.html#daemon

Respuesta2

Lo que también podría ser problemático es la configuración personalizada de la localización de pid en nginx.conf:

pid ../logs/nginx.pid;

debe estar alineado con la configuración PIDFile en el archivo nginx.service (/lib/systemd/system/nginx.service): PIDFile=/var/run/nginx.pid

Aquí no está ;]

Respuesta3

Esto también puede suceder al copiar la configuración de nginx a openresty. Tenía esta línea en la configuración y openresty no se iniciaba como servicio:

pid /run/nginx.pid;

información relacionada