每次或经常当我运行 apt-get update 然后升级时,我都会收到 nginx 502 错误。重新启动服务器即可恢复一切。
我猜我每次都必须重新启动 nginx?
顺便问一下,我怎样才能知道我的 nginx 安装在哪里,以便我可以调用它重新启动?
我已经很久没有使用过这个测试 vps 了(仍在学习)
答案1
我不知道/etc/init.d/nginx
Ubuntu 有什么作用,但我可以解释 Nginx 有什么机制,以便您可以在不中断服务的情况下进行升级。
如果你要从源代码安装/升级 Nginx,你肯定会先构建它。然后你发出make install
复制新二进制文件的任务。
然后,你必须了解 Nginx “master” 进程的 PID 是什么:
ps ax | grep nginx
并在输出中找到“主”进程 PID。我们假设它是 123。
然后发送USR2
信号给主进程:
kill -USR2 123
您可以检查 Nginxerror.log
和进程列表(ps ax | grep nginx
)以确保 Nginx 的新实例已启动。
发出WINCH
信号:
kill -WINCH 123
现在,新的 Nginx 实例将接收请求。旧的工作进程将正常关闭。再次检查error.log
以确保一切正常。
最后,
kill -QUIT 123
将关闭旧的 Nginx 主控。此后,您的系统将安装并运行新的 Nginx。
此过程可确保所有连接均不中断。