Upstart 导致 Nginx 进程丢失

Upstart 导致 Nginx 进程丢失

通常我可以通过键入重新加载我的 nginx 配置sudo service nginx reload,一切都很顺利。但是,今天我尝试了一下,reload: Not running我尝试重新启动 nginx,一开始我收到一条消息,说当前没有正在运行的实例(这与 ps -ef 相矛盾,其 PID 与 /var/run/nginx.pid 匹配),然后似乎启动了一个新实例,但它似乎什么也没做。此外,重新加载命令的控制权没有归还给我。

有人遇到过这种情况吗?这是一台生产机器,所以我很担心在不知道发生了什么事情的情况下乱动它,而且我也不清楚如何在测试实例上重现这种情况。

谢谢!

答案1

在将 nginx 从 1.6.3 升级到 1.8.0 后,我们在测试机上遇到了类似的问题。nginx 错误日志显示如下条目

bind() to 0.0.0.0:80 failed (98: Address already in use)
bind() to 0.0.0.0:443 failed (98: Address already in use)

我们解决了这个问题

sudo fuser -k 80/tcp
sudo fuser -k 443/tcp

在生产机器上,我们在升级之前停止了 nginx。

相关内容