web-dev-qa-db-ja.com

NGINX証明書の問題:ポート80へのバインド:IPv4またはIPv6にバインドできませんでした

NGINX Webサーバーがあり、Certbot(letsencrypt)を使用してWebサイトの証明書を更新しています。証明書を更新しようとすると、次のエラーが発生します。

binding to port 80: Could not bind to IPv4 or IPv6

だから私はポート80を使用しているものをチェックし、これを手に入れました:

# lsof -Pnl +M -i6
COMMAND   PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
nginx   17117        0    7u  IPv6 102365521      0t0  TCP *:443 (LISTEN)
nginx   17117        0    9u  IPv6 102365523      0t0  TCP *:80 (LISTEN)
nginx   17118       33    7u  IPv6 102365521      0t0  TCP *:443 (LISTEN)
nginx   17118       33    9u  IPv6 102365523      0t0  TCP *:80 (LISTEN)
nginx   17119       33    7u  IPv6 102365521      0t0  TCP *:443 (LISTEN)
nginx   17119       33    9u  IPv6 102365523      0t0  TCP *:80 (LISTEN)
sshd    18455        0    4u  IPv6  66436292      0t0  TCP *:22 (LISTEN)

3つの異なるnginxが実行されているようですよね?

実行してnginxを停止しようとしました

/etc/init.d/nginx stop

私もこうやってみました

systemctl stop nginx

そして、現在のプロセスを確認すると、上記の停止コマンドを実行しても、2つのnginxが実行されています。

root     17117  0.0  0.1 161720  2284 ?        Ss   juin06   0:00 nginx: master process nginx -c /etc/nginx/nginx.conf
www-data 17118  0.0  0.3 161984  8208 ?        S    juin06   0:00 nginx: worker process
www-data 17119  0.0  0.3 161720  7484 ?        S    juin06   0:02 nginx: worker process

ちなみに、このエラーが発生したため、NGINXを起動できません:

# systemctl start nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

誰かが私を助けることができればそれは素晴らしいでしょう:)!

1
Antoine

Systemdがサービスを正常に管理(停止または再起動)するには、systemdを介して開始されている必要があります。 nginxプロセスが直接開始されている場合、systemctlはそれを認識せず、2番目のコピーを開始しようとするか、既存のコピーを停止できません。

/etc/init.dまたはSudo nginxを使用してサービスを開始しないでください。常にsystemctl start nginxを使用してください。 cronjobまたはCertbotフックが同じことを行うことを確認してください。

0
user1686