Beim Start von nginx läuft die Zeit ab

Beim Start von nginx läuft die Zeit ab

Ich habe nginxmit diesem sources.list.dEintrag installiert:

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

Die Nginx-Version ist 1.12.2-1~xenial. Auf dem Server läuft Ubuntu 16.04 LTS mit Kernel 4.4.0-36-generic.

Mein Problem besteht darin, dass der nginxDaemon nicht gestartet werden kann:

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

Leider liefern diese Protokolle nicht viele Informationen:

$ 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'.

Soweit ich das beurteilen kann,nginx startet tatsächlich korrekt. Das Problem ist, dass der übergeordnete Prozess die Meldung „Ich bin gestartet“ von seinen untergeordneten Prozessen nicht richtig empfängt. Wenn er läuft (systemd wartet auf den Start), kann ich ihn erfolgreich wie folgt curlen:

$ 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>

Ich bin diesbezüglich ratlos, abgesehen davon, vielleicht eine andere nginxVersion oder so zu testen. Irgendwelche Ideen? Ich könnte den Server neu starten, aber auf einem Linux-Server fühlt sich das albern an.

Update 9:56 UTC: Getestet mit 1.13.8-1~xenial, gleiches Problem.

Antwort1

Ich habe schließlich das Problem gefunden, es war ein dummes Problem ...

Ich hatte meine Konfiguration begonnen, nginxindem ich die Einstellungen aus einem Docker-Container kopierte, der diese Einstellung in seiner nginxKonfiguration hatte:

daemon off;

Dies traf genau auf das Docker-Szenario zu (wo der nginxProzess mit ausgeführt wurde runit, d. h., er wurde nicht von systemdeinem -Style-Init gesteuert). Es hatte zur Folge, dass es nginxnie zu einer Daemonisierung kam und die Kontrolle an systemd zurückgegeben wurde -> es wurde als „Zeitüberschreitung mit unbekanntem Problem“ behandelt und systemdbeendet.

Es stellte sich also heraus, dass es sich um einen einfachen Konfigurationsfehler handelte. Ich wollte es hier posten, da es anderen helfen könnte, die diesen plumpen Fehler ebenfalls machen. :-)

Alle Details zu diesem Keyword:http://nginx.org/en/docs/ngx_core_module.html#daemon

Antwort2

Was ebenfalls problematisch sein könnte, ist die benutzerdefinierte Einstellung der PID-Lokalisierung in nginx.conf:

pid ../logs/nginx.pid;

es muss mit der PIDFile-Einstellung in der Datei nginx.service (/lib/systemd/system/nginx.service) ausgerichtet sein: PIDFile=/var/run/nginx.pid

Hier ist es nicht ;]

Antwort3

Dies kann auch passieren, wenn die Nginx-Konfiguration nach OpenResty kopiert wird. Ich hatte diese Zeile in der Konfiguration und OpenResty wurde nicht als Dienst gestartet:

pid /run/nginx.pid;

verwandte Informationen