Nginxがリロードに失敗する-理由を追跡する方法は?


96

こんにちは、しばらくの間、Ubuntuサーバー12.04でNginxサーバーが正常に動作していました。

私は次第にさまざまな部分に取り組み、ワードプレスページの読み込み時間を最適化するまでになりました。

hostsファイルにいくつかの変更を加えた後、私は次のことに決めました。

sudo /etc/init.d/nginx reload

私が得るもの:

  • nginx設定nginxのリロード[失敗]

追加情報や推論は提供されません。再起動中にエラーステートメントを出力してエラーの追跡を開始できるように、サーバーを再起動するにはどうすればよいですか。

ボーナス質問の場合:

これらのNginxシステム管理者は、ホストに多くの変更を加え、他のいくつかのビットを追加しても、nginxサーバーが突然リロードしません(偶然、すべてがまだ実行中のように見えます!)なぜ、またはデバッグするために物事を分解し始めますか!


4
構文を確認しますsudo nginx -t(または構成プレフィックスとメイン構成ファイルはsudo nginx -p /etc/nginx -c nginx.confどこに/etc/nginxありますかnginx.conf)。
Lekensteyn

sudo nginx -s reloadも読み上げてくれたようです!
Huw 14

回答:


145

構成ファイルの問題に関するメッセージについては、syslog(/ var / log / syslog)を確認してください。

コマンドラインから次を実行できます。

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

nginxに設定のエラーをチェックさせる。


あはは!非常に便利です:location "/ blog / wp-admin" is location outside "/blog/.*\.php$" in /etc/nginx/site-configs/wordpress.conf:1 ...興味深い、続けるべきものを私に与えてくれます!
Huw 14

2
ああ!3時間の検索で、見逃していたことが判明しました。すべての助けをありがとう、それを追跡するのに不可欠であることが判明した。ちなみに、誰かがArs TechnicaのWeb提供の投稿をフォローした後にこの質問にたどり着いた場合。私は今、細かい歯の櫛でそれらを通り抜けてきたと思います!
ヒュー

4
このコマンドを実行するnginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulと私に与えられますが、まだnginxを開始できません
ビル・ギャリソン

1
@BillGarrisonは、syslogとnginxエラーログで詳細を確認します
Dlloyd


7

おそらくエラーをチェックする必要があり/var/log/nginx/error.logます。

私の場合、ipv6のポートは追加しませんでした。また、これを行う必要があります(80以外のポートでnginxを実行している場合)。 listen [::]:8000 default_server ipv6only=on;


1
注:のアクセス許可が間違っている/var/log/nginx/error.log場合、nginxはエラーを書き込むことができず、サイレントに失敗します。受け入れられた回答(nginx -c /etc/nginx/nginx.conf -t)のように設定を確認すると役立ちます。
-user898763452

5

これらのコマンドを実行して、nginxをバックアップして動作させます。

# 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は現在動作しています!!


2
削除してパージする必要はありません。パージするだけです。そして、パージがすべての設定ファイルを削除するため、これが質問に答えるのかどうかを知るのは難しい
パンサー

1
理想的には-と他のユーザーのために私は、障害が発生した場所へと読み出しの最大量を取得し、私の現在のパージとゼロから始めるのではなく、インストール修復することが好ましいだろう
ヒュー

1
@ bodhi.zazen答えを修正しました。そして、「Huw」が言ったことに関しては、私は同意します。インストールとセットアップを始めnginxたばかりなので、エラーを追跡するのではなく、削除して最初からやり直すことは大したことではありませんでした。両方のサイトをありがとうございます。
アーロンレレヴィエ

私の場合、私は唯一の私は、このコマンドを使用して起動しなければならなかった sudo /etc/init.d/nginx start
焼けるように暑いコード

3

自分/etc/nginx/sites-available/defaultまたは使用しているコピーをチェックし、コメント解除された可能性のあるものに関して必要なコメントを外します(削除します#)。それが私の問題でした。}{


2

nginxをパージしてから、コマンドラインで入力する必要があります。

ln -s /etc/nginx/sites-availbale/default .etc/nginx/sites-enabled/default

という意味apt-get purgeですか?
RolandiXor

2

を使用して、すべてのファイルを再度開きます

nginx -s reopen

次に使用する

nginx -s reload

nginxのヘルプが示すように、マスターprocess.itにシグナルを送信してnginxをリロードします。

リクエスト:purge初心者に問題を引き起こす可能性があるため、コマンドを慎重に提供しないでください(すべての構成が失われます)。


1

このようなエラーが発生している場合は、チェックjournalctl -xeアウトできます。
オペレーションシステムの問題で何が起こったかについての情報がたくさんあります。
journalctl -xe | grep nginxを見つけるか、単にnginxがそれ自体を実行しようとしたときに何が起こったかを見つけることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.