http://blog.sina.com.cn/s/blog_87d0f8ba0100yhi2.html
推荐第二种方法:
一、脚本升级nginx
此脚本专门用来升级nginx,可以升级nginx至任意官方已发布的nginx版本。执行如下代码:
wget soft.vpser.net/lnmp/upgrade_nginx.sh;sh upgrade_nginx.sh
然后按提示输入要升级的Nginx版本号,Nginx的版本号可以从http://nginx.org/en/download.html查询。输入版本号后回车,再次回车确认即可开始安装,如果不出意外就会升级成功。
二、手动升级nginx
如果觉得脚本一键升级没有技术含量的话,可以试着手动编译升级nginx。
1)假如现在系统是1.1.0,要升级到1.1.1,或者是以前编译的时候有些选项没有加,现在需要重新编译。那么需要做的是在configure的时候(./configure --prefix=/data/server/nginx ,用这个指定目录。http://www.myhack58.com/Article/sort099/sort0102/2015/66341.htm 安装参考),路径选择之前安装版本的路径,然后make&& make install2)然后进入nginx的sbin目录,可以里面有2个nginx启动文件,nginx和nginx.old。分别用./nginx-v和./nginx.old -v检查一下的话,可以看到老的nginx已经被替换为nginx.old
./nginx -t
检查一下,如果出现
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
那么说明配置正常。然后我们执行一下
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
ps aux| grep nginx
检查一下,查看结果
root 2248 0.0 0.1 20752 1420 ? S 16:46 0:00 nginx: master process ./nginx nobody 2249 0.0 0.1 21164 1416 ? S 16:46 0:00 nginx: worker process root 5108 0.0 0.1 20748 1408 ? S 17:07 0:00 nginx: master process ./nginx nobody 5109 0.0 0.1 21144 1172 ? S 17:07 0:00 nginx: worker process
3)而原来存放nginx.pid的目录也自动出现了nginx.pid.oldbin。现在新的和旧的一起在提供服务,这是我们只需要把旧的停掉就可以了,执行
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`