Nginx无缝升级

昨天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 Responses to Nginx无缝升级

  1. 小蜜蜂 says:

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

  2. 大猪 says:

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

  3. 冰古 says:

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

    licess Reply:

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

  4. padipaws says:

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

  5. Pingback: 猫猫的LNMP一键安装包使用心得vsper.net – 【vps应用博客】

  6. JudahXIII says:

    我升级到 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. vowanson says:

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

    但是升级成功!

    nginx 0.8.46 升级成功!

    这个方法不错!

  8. Pingback: 鲁沙尔 » Nginx无缝升级

  9. vowanson says:

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

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

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

  10. 冰古 says:

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

    licess Reply:

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

发表评论

(required)

This site uses Akismet to reduce spam. Learn how your comment data is processed.