it-swarm-ja.com

nginxは開始時にタイムアウトします

このsources.list.dエントリを使用してnginxをインストールしました。

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

Nginxのバージョンは1.12.2-1~xenialです。サーバーは、カーネル4.4.0-36-genericを使用してUbuntu16.04LTSを実行しています。

私の問題は、nginxデーモンの起動に失敗することです。

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

残念ながら、これらのログは多くの情報を提供しません。

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

私の知る限り、nginxは確かに正しく起動します。これは、親プロセスが子プロセスから「Iamstarted」メッセージを正しく受信していないかのようです。これが問題です。それが実行されているとき(systemdはそれが開始するのを待っています)、私はそれを次のようにうまくカールさせることができます:

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

おそらく別のnginxバージョンか何かをテストすることを除けば、私はこれに迷いました。何か案は?サーバーを再起動することはできますが、Linuxサーバーではばかげているように感じます。

更新9:56 UTC:1.13.8-1~xenialでテスト、同じ問題。

1
Per Lundberg

私は最終的に問題を見つけました、これはばかげたものでした...

nginx構成にこの設定が含まれているDockerコンテナーから設定をコピーすることにより、nginx構成を開始しました。

daemon off;

これは、Dockerシナリオ(nginxプロセスがrunitで実行されていた、つまりsystemdスタイルのinitがそれを制御していなかった)では正しかった。nginxデーモン化することはなく、systemdに制御を戻します->「不明な問題でタイムアウト」として扱われ、systemdはそれを強制終了します。

したがって、これは単純な構成エラーになりました。この不器用な間違いを犯す他の人にも役立つかもしれないので、ここに投稿したいと思いました。 :-)

このキーワードの詳細: http://nginx.org/en/docs/ngx_core_module.html#daemon

3
Per Lundberg