Nginx 请教一个 Nginx 平滑升级的问题

qq453944635 · 2017年07月14日 · 最后由 shangzhiqiang-ops 回复于 2019年09月09日 · 7779 次阅读

/usr/local/nginx/sbin/nginx -t && kill -USR2 cat /usr/local/services/nginx/nginx.pid 这步以后没有生成 nginx.pid.oldbin 老版本是 1.4.4,新版本是 1.12.1 但是部分升级是成功,有部分是失败的。查看日志,整个执行流程没有异常。 可是就是生不出来新版本的进程。

升级版本一般都是要硬重启的

  • 如果可以停机的话,就随便搞。
  • 如果不想停机的话,就搞台新的服务器,自己改 host 测试完没问题再把流量切换过来,旧机器就直接关掉

惭愧 自己做的项目还没有撑到需要去升级 nginx 的必要

nginx 是可以不丢连接平滑升级 nginx 二进制文件的,这个做的非常成熟了。 建议看看文档:http://nginx.org/en/docs/control.html

hz_qiuyuanxin 回复

😓 可以停机就不会想着平滑升级了。。线上服务,不能随便停的。

helapu 回复

😳 nginx 不是报除了大漏洞吗。。1.12 以上才能避免,老大大手一挥,下面就难受了。

zamia 回复

谢谢老哥。

qq453944635 回复

我知道,但是我又说了

如果不想停机的话,就搞台新的服务器,自己改 host 测试完没问题再把流量切换过来,旧机器就直接关掉

另外,3 楼的回复可以看看,里面确认有平滑升级的方案。

2017/07/15 09:09:09 [alert] 8730#0: execve() failed while executing new binary process "nginx" (2: No such file or directory) 2017/07/15 09:09:25 [alert] 8733#0: execve() failed while executing new binary process "nginx" (2: No such file or directory) 2017/07/15 09:09:37 [alert] 8737#0: execve() failed while executing new binary process "nginx" (2: No such file or directory) 2017/07/15 09:09:40 [alert] 8740#0: execve() failed while executing new binary process "nginx" (2: No such file or directory) 2017/07/17 09:25:21 [alert] 9333#0: execve() failed while executing new binary process "nginx" (2: No such file or directory) 为什么会这样。。😳 😳 😳

明明是存在的啊。。为什么会找不到新的二进制文件。。

nginx -t 显示 nginx: [alert] version 1.16.1 of nginx.pm is required, but 1.10.2 was found 这种问题有没有大佬在升级的过程中遇到过啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号