码迷,mamicode.com
首页 > 其他好文 > 详细

nginx 安装 与 平滑升级

时间:2015-03-13 18:59:05      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:nginx

首先获取两个 nginx 源码包

nginx-1.4.7.tar.gz

nginx-1.6.2.tar.gz


------------安装nginx----------


# yum install -y gcc gcc-c++ make  //安装gcc由于实验环境缺少编译工具

# yum install -y pcre-devel zlib-devel    // nginx rewrite gzip 需要依赖的库

解压nginx

# tar -xzvf nginx-1.4.7.tar.gz

# cd nginx-1.4.7

# ./configure --prefix=/usr/local/nginx    //简单安装,生产环境勿模仿(ˉ﹃ˉ)


成功会提示类似以下信息

Configuration summary

  + using system PCRE library

  + OpenSSL library is not used

  + using builtin md5 code

  + sha1 library is not found

  + using system zlib library


然后执行 

# make && make install   //编译 、安装

# cd /usr/local/nginx    //进入nginx 目录


#./sbin/nginx -c ./conf/nginx.conf   //让nginx加载配置文件并启动

# ps aux | grep nginx            //nginx 进程已经启动

root      7012  0.0  0.1  19824   604 ?        Ss   09:35   0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf

nobody    7013  0.0  0.2  20220  1176 ?        S    09:35   0:00 nginx: worker process 


测试访问下本地web ,会有如下提示 因为我们没有配置所以是默认的页面,注意iptables 规则

# elinks --dump http://localhost

                               Welcome to nginx!


   If you see this page, the nginx web server is successfully installed and

   working. Further configuration is required.


---------到此安装结束-------以下是平滑升级-------


nginx 信号:

QUIT   执行完当前的请求后退出

HUP    重新加载配置文件,平滑重启

USR1   重新打开日志文件

USR2   平滑升级 nginx 二进制文件

WINCH  优雅的关闭worker进程


注意 :既然是平滑升级当然不需要重启服务或者暂停web服务


# cd /usr/local/nginx/

# ./sbin/nginx -V              //查看当前nginx版本与配置参数

nginx version: nginx/1.4.7

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) 

configure arguments: --prefix=/usr/local/nginx    //以前版本的配置信息


去解压我们更高版本的nginx

# tar -xzvf nginx-1.6.2.tar.gz 

# cd nginx-1.6.2

# ./configure --prefix=/usr/local/nginx/    //注意:这里引用1.4.x 版本 nginx -V 命令查看

                                                      的配置信息


# make                //这里只有make 没有make install

# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_old //改变原理程序的名字

# cp ./objs/nginx /usr/local/nginx/sbin/    //把新程序copy过去

此时注意进程

# ps aux | grep nginx | grep -v ‘grep‘

root      7012  0.0  0.1  19824   604 ?        Ss   09:35   0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf

nobody    7013  0.0  0.2  20220  1408 ?        S    09:35   0:00 nginx: worker process

此时的nginx pid 为 7012

# cd /usr/local/nginx/

# kill -USR2 ./log/nginx.pid    //给旧进程发信号,他会把自己的pid文件改为nginx.pid.oldbin

#cat ./logs/nginx.pid.oldbin     //此时旧进程的pid文件已经变了

 7012

# ps aux | grep nginx | grep -v ‘grep‘   //此时两个进程一起工作

root      7012  0.0  0.1  19824   704 ?        Ss   09:35   0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf

nobody    7013  0.0  0.2  20220  1408 ?        S    09:35   0:00 nginx: worker process            

root      9243  0.0  0.2  19832  1424 ?        S    10:03   0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf

nobody    9244  0.0  0.2  20256  1200 ?        S    10:03   0:00 nginx: worker process

# kill -QUIT `cat ./logs/nginx.pid.oldbin`   //让旧的进程退出

[root@c4d96299f8ce nginx]# ps aux | grep nginx | grep -v ‘grep‘  //只剩下新的进程了

root      9243  0.0  0.2  19832  1424 ?        S    10:03   0:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf

nobody    9244  0.0  0.2  20256  1200 ?        S    10:03   0:00 nginx: worker process 


# elinks --dump http://localhost/test         //此时我们故意用错URL报错信息显示是新版本

                                 404 Not Found


   --------------------------------------------------------------------------


                                  nginx/1.6.2


平滑升级到此结束

end .

本文出自 “superTaodi” 博客,请务必保留此出处http://supertaodi.blog.51cto.com/7256234/1620186

nginx 安装 与 平滑升级

标签:nginx

原文地址:http://supertaodi.blog.51cto.com/7256234/1620186

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!