Nginx无缝升级

2009年07月02日 16:49 | 作者:

昨天VPS侦探的VPS因为内存爆满挂掉,顺便升级了下Nginx,到最新比较稳定稳定的0.7.65。

Nginx编译后就一个小文件,不带动态库,升级也可以无缝升级,并不影响访问。

首先下载Nginx:执行wget http://soft.vpser.net/web/nginx/nginx-0.7.65.tar.gz

再执行 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module ,按原来的路径配置,自己需要的包打上,基本上没啥,基本功能Nginx都自带了。

然后make,但不要install

编译完,在objs目录下有一个nginx执行文件,就是它了。

备份下原来老的nginx文件

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

在把新objs下的nginx cp到sbin下。

nginx -t 测试下,显示通过。

//让nginx把nginx.pid改成nginx.pid.oldbin 跟着启动新的nginx,一般lnmp一键安装包安装的按下面执行命令即可。
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

//退出旧的nignx
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`

升级完成!

14 条评论

  1. 不知道最後用 /etc/init.d/nginx restart 代替最後兩個命令是否可行。

    licess Reply:

    @冰古, 没有添加这个命令

  2. make upgrade

  3. 我最后整理出了一份nginx 0.8.46升级成功的命令~!

    我没有用nginx -t 进行测试,比较冒险!

    http://www.imldj.info/archives/455

  4. [...] Blog上的nginx无风升级,顺利升级成功,顺便整理一下整一个升级的过程和注意的事情! mkdir [...]

  5. 执行 nginx -t 不能成功,提示不知道commond~

    但是升级成功!

    nginx 0.8.46 升级成功!

    这个方法不错!

  6. 我升级到 Nginx-8.3.6,直接 make 并替换以后执行 nginx -t 不能成功,会显示有旧的 nginx.conf 文件存在。
    我 make install 以后就可以了。并且 make install 以后不需要手动去替换 sbin 里的这个 nginx 执行文件。
    因为包括你的文章在内的很多人都说不用 make install,结果报错弄了好久。

    licess Reply:

    @JudahXIII, 0.8.*没升级过,0.7.*的此方法都正常。

  7. [...] 3.nginx无缝升级: 参考:http://blog.licess.org/nginx-upgrade/ [...]

  8. 我觉得你的文章不错!继续加油!

  9. objs里的其他文件和文件夹都用不上的吗?

    licess Reply:

    @冰古, 嗯,只用nginx一个文件就可以。

  10. 不错啊,已经成功更新了,你的LNMP确实很方便。

  11. 呵呵,最好根据原来的LNMP的包出一个升级包
    LNMP真的很不错。

发表评论