Nginxconfiguration无法重新加载。 有“bind()到0.0.0.0:80失败(98:地址已经在使用)”错误

我尝试安装一个HTTPS证书,并且在将我的头靠在墙上几个小时之后,我意识到Nginx并没有拿起我在/etc/nginx/sites-available/

当我运行service nginx restart它重新启动罚款。 当我运行nginx -t它说我的语法是好的,我的configurationtesting是成功的。 但是,当我运行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() 

在谷歌search后,我跑过这个命令netstat -plutn | grep 80 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是我的networking服务器,我不希望它在端口80上运行?

不知道如何继续。 我希望Nginx能够使用service nginx reload命令来获取我在站点configuration文件中所做的更改,同时我也只是复制/粘贴我在网上find的命令,因为我有10个托pipe在这个网站上的网站服务器。

我哪里错了? 我试图删除我的sites-available文件夹中的default文件,有些人build议,但我不明白什么是问题,以及如何解决这个问题。

问题是固定的。 正如Tim所说,我跑了ps -ef | grep nginx ps -ef | grep nginx命令并手动为所有进程运行kill PID 。 然后我运行service nginx restart ,一切运行良好。 当我然后运行service nginx reload我没有得到一个错误,我的HTTPS证书现在工作。 感谢Tim和dmourati的帮助

听起来像你的初始化脚本和nginx的pid文件位置的问题。 你可以像这样手动杀死nginx:

sudo杀14642

然后通过init脚本启动nginx,如下所示:

sudo服务nginx启动

从那里,如果你复制/粘贴你的初始化脚本和nginx.conf文件,我相信我们可以find与pid的问题。