我对nginx有意见。我尝试了不同的解决方案,但对我来说没有任何效果。这就是我的错误:
4 root@BANANAS ~ # sudo service nginx restart :(
Restarting nginx: nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:443 failed (98: Address already in use)
nginx: [emerg] still could not bind()
nginx.你能帮帮我吗?
发布于 2017-02-17 17:14:20
可能是其他进程正在使用指定的端口:
sudo netstat -tulpn获取已经使用443的进程的PID。用杀死命令发送信号。
sudo kill -2 <PID>
sudo service nginx restart你也可以这样做:
sudo fuser -k 443/tcp确保不使用旧语法:
server {
listen :80;
listen [::]:80;
}以上语法将导致
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)正确语法:
server {
listen 80;
listen [::]:80 ipv6only=on;
}或
server {
listen [::]:80;
}上述两种语法都将实现相同的功能,同时监听ipv4和ipv6。
发布于 2018-02-01 09:37:50
另一种方法(根据我的经验)是强制退出在端口443上运行的进程。
sudo fuser -k 443/tcp 或者,如果您在端口80上运行,只需将端口更改为
sudo fuser -k 80/tcp希望它能帮助那些有同样问题的人
使用lsof**:**的替代方案
查找PID &终止在端口443上运行的进程
sudo kill -9 $(lsof -t -i :443)发布于 2018-12-04 21:44:57
谢谢你的回答。跑后
sudo netstat -tulpn我意识到我在80端口上运行了apache2。这可能是在我使用Certbot在服务器上安装SSL之后完成的。我删除了Apache2,服务器已经启动并运行。
apt remove apache2这招成功了!再次感谢您。
https://stackoverflow.com/questions/42303401
复制相似问题