Nginx 平滑升级

Nginx(“engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。Igor 将源代码以类BSD许可证的形式发布。自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、 示例配置文件和低系统资源的消耗而闻名了。最近nginx又发布1.0.0正式版,所以将服务器上nginx升级了,特此记录一下升级的过程。

首先从nginx的官网下载nginx源代码

[cce]
cd /opt/download/ 
wget -c http://nginx.org/download/nginx-1.0.0.tar.gz 
tar xvzf nginx-1.0.0.tar.gz 
cd nginx-1.0.0 [/cce]

查看编译参数

[cce]
/opt/nginx/sbin/nginx -V
nginx version: nginx/0.7.67 
built by gcc 3.4.6 20060404 (Red Hat 3.4.6-11) 
configure arguments: --prefix=/opt/app/nginx-0.7.67
[/cce]

开始编译nginx源代码,假设你的目录结构跟我一样

[cce] /opt/download/nginx-1.0.0 /opt/app/nginx-0.7.67 /opt/nginx –>/opt/app/nginx-0.7.67 [/cce]


要想平滑升级,按照最第一次编译参数进行编译即可,configure之后make,但不要进行make install。由于我想安装/opt/app/nginx-1.0.0,所以修改了下参数

[cce]
./configure --prefix=/opt/app/nginx-1.0.0
make
[/cce]

重命名旧版本的nginx执行文件,copy新版本的nginx到目录。

[cce]
mv /opt/nginx/sbin/nginx /opt/nginx/sbin/nginx.old
cp objs/nginx /opt/nginx/sbin/
cd /opt/app
mkdir /nginx-1.0.0
cp /opt/app/nginx-0.7.67/ nginx-1.0.0/ –r
[/cce]

升级nginx

[cce] cd /opt/download/nginx-1.0.0 make upgrade [/cce]


出现出现make错误,查看nginx,已经正常和旧版本的nginx一起工作了。

[cce] /opt/app/nginx-1.0.0/sbin/nginx -t nginx: the configuration file /opt/app/nginx-1.0.0/conf/nginx.conf syntax is ok nginx: configuration file /opt/app/nginx-1.0.0/conf/nginx.conf test is successful kill -USR2 `cat /opt/app/nginx-1.0.0/logs/nginx.pid` sleep 1 test -f /opt/app/nginx-1.0.0/logs/nginx.pid.oldbin make: *** [upgrade] Error 1 [/cce]


找到旧版本的nginx的进程号,kill掉即可。

[cce] cat /opt/app/nginx-0.7.67/logs/nginx.pid.oldbin 14004 kill –9 14004即可 [/cce]


添加链接到nginx-1.0.0

[cce] ln –s /opt/nginx /opt/app/nginx-1.0.0 sh /opt/nginx/sbin/restart.sh[/cce]

 

看多么可爱的nginx啊!

打赏作者

您的支持将鼓励我们继续创作!

[微信] 扫描二维码打赏

[支付宝] 扫描二维码打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注