web-dev-qa-db-ja.com

Nginx構成をリロードできません。 「bind()to 0.0.0.0:80 failed(98:Address already in use)」エラーが発生する

HTTPS証明書をインストールしてみましたが、数時間壁に頭をぶつけた後、Nginxが/etc/nginx/sites-available/に含まれるサイト構成ファイルで行った変更を取得していないことに気付きました

service nginx restartを実行すると、正常に再起動します。 nginx -tを実行すると、構文に問題がなく、構成テストが成功したと表示されます。ただし、service nginx reloadを実行すると、reload: Not runningというエラーが表示されます

/var/log/nginx/error.logを見ると、これらのエラーがあります。

2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to 0.0.0.0:443 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: bind() to [::]:80 failed (98: Address already in use)
2016/08/29 16:04:40 [emerg] 14744#14744: still could not bind()

ぐるぐる回った後、このコマンドnetstat -plutn | grep 80に遭遇しました...

tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      14642/nginx: worker
tcp6       0      0 :::80                   :::*                    LISTEN      14642/nginx: worker

これが本当に何を意味するのかはわかりませんが、読んでみると、Nginxがポート80で実行されてはいけないようです。 Nginxは私のウェブサーバーですが、ポート80で実行したくないですか?

進め方がわからない。 service nginx reloadコマンドを使用してサイト構成ファイルに加えた変更をNginxに取得させたいと同時に、10のWebサイトがホストされているため、ネット上で見つけたコマンドをコピーして貼り付けるのをためらっています。このサーバー上。

どこが間違っているのですか? sites-availableフォルダー内のdefaultファイルを削除しようとしましたが、問題が何であるか、およびその修正方法がよくわかりません。

2

問題が修正されました。ティムが言ったように、私はps -ef | grep nginxコマンドを使用して手動で実行したkill PIDすべてのプロセス。それから私は走ったservice nginx restartそしてすべてうまくいった。次に私が走ったときservice nginx reloadエラーは発生せず、HTTPS証明書が機能するようになりました。ティムとドモラティ、ありがとう

2

Initスクリプトとnginxのpidファイルの場所に問題があるようです。次のように手動でnginxを強制終了できます。

須藤キル14642

次に、次のようにinitスクリプトを介してnginxを起動します。

Sudoサービスnginx開始

そこから、initスクリプトとnginx.confファイルをコピーして貼り付けると、pidの問題を見つけることができると確信しています。

0
dmourati