加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

LINUX技巧之nginx升级

(2011-10-28 09:49:55)
标签:

nginx

杂谈

分类: 知识库

最近客户请了安全测试公司对我们系统进行了安全测试,其中发现一个问题就是报nginx版本太低,并且有安全漏洞,要求对nginx版本进行升级,刚好系统实施人员请假,找不到处理的相关人员,虽然使用LINUX问题不大,但是还没有对nginx版本做过升级,索性就自发的研究了一下nginx升级,其实升级nginx有两种方法,一种较简单的是使用已有脚本一键升级到指定版号,另外一种就是手动下载修改编译nginx升级了。以下方法只针对Linux或者Unix系统的用户,具体如下:

一、脚本升级nginx

  此脚本专门用来升级nginx,可以升级nginx至任意官方已发布的nginx版本。执行如下代码:

wget soft.vpser.net/lnmp/upgrade_nginx.sh;sh upgrade_nginx.sh

  然后按提示输入要升级的Nginx版本号,Nginx的版本号可以从http://nginx.org/en/download.html查询。输入版本号后回车,再次回车确认即可开始安装,如果不出意外就会升级成功。

http://down.chinaz.com/upload/2011/8/30/201183011284165111.jpg

二、手动升级nginx

  如果觉得脚本一键升级没有技术含量的话,可以试着手动编译升级nginx。

  1)假如现在系统是1.1.0,要升级到1.1.1,或者是以前编译的时候有些选项没有加,现在需要重新编译。那么需要做的是在configure的时候,路径选择之前安装版本的路径,然后make && make install

  2)然后进入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`

 到这里,两种升级方式都讲完了,虽然文章有点长,但其实需要操作的还是很少的。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有