NGINX 证书问题:绑定到端口 80:无法绑定到 IPv4 或 IPv6

NGINX 证书问题:绑定到端口 80:无法绑定到 IPv4 或 IPv6

我有一个 NGINX 网络服务器,我正在使用 Certbot (letsencrypt) 来更新我的网站证书。当我尝试更新证书时,出现此错误:

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

为了使 systemd 成功管理(停止或重新启动)服务,它必须开始通过 systemd。如果已直接启动 nginx 进程,systemctl将无法识别它并尝试启动第二个副本,或者无法停止现有副本。

不要使用/etc/init.dsudo nginx来启动服务 - 始终使用systemctl start nginx。确保您的 cronjobs 或 Certbot 钩子执行相同的操作。

相关内容