Nginx的平滑升级

环境说明

当前服务器中正在运行Nginx服务,现想将当前运行的Nginx服务的版本经行升级,(从1.6升级到1.8,版本的跨度不要太大,容易造成服务的崩溃),且在服务不停止的前提下经行升级。

  1. 在不停掉老进程的情况下,启动新进程。
  2. 老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
  3. 新进程接受新请求。
  4. 老进程处理完所有请求,关闭所有连接后,停止。

实现步骤

1. 编译安装nginx-1.6

yum -y install pcre-devel zlib-devel    #安装依赖包
useradd -M -s /sbin/nologin nginx    #添加程序运行用户
tar zxvf nginx-1.6.0.tar.gz -C /usr/src/    #解包
cd /usr/src/nginx-1.6.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install    #配置编译并且安装
/usr/local/nginx/sbin/nginx        #启动nginx服务                

2. 编译nginx-1.8(只编译不安装)

tar zxvf nginx-1.8.1.tar.gz -C /usr/src/    #解包
cd /usr/src/nginx-1.8.1/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make    #配置编译并且安装

3. 查看升级之前的版本

#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.6.0

4.  备份旧版本的nginx的执行程序

mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old

5. 替换旧的Nginx的执行程序

cp /usr/src/nginx-1.8.1/objs/nginx /usr/local/nginx/sbin/

6. 使nginx的旧版本停止就收请求,有Nginx新版本接替,且老进程处理完所有请求,关闭所有连接后,停止

kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`

7. 查看nginx日志目录会生成一个nginx.pid.oldbin文件,存放旧版本nginx 的pid号

#ls /usr/local/nginx/logs/
access.log  error.log  nginx.pid  nginx.pid.oldbin

8.查看升级升级后的版本

#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.8.1

9. 查看服务运行状态

netstat -aupt | grep nginx
getnameinfo failed
tcp        0      0 *:http                      *:*                         LISTEN      6963/nginx 

10. 使用客户端验证Nginx服务是否可以继续访问

时间: 2024-10-12 17:16:42

Nginx的平滑升级的相关文章

源码安装nginx以及平滑升级

作者:尹正杰 这个博客不方便上传软件包,我给大家把软件包放到百度云了: 链接:http://pan.baidu.com/s/1eS3bn4u 密码:04a1 欢迎加入:高级运维工程师之路 598432640 操作平台: 1.创建ngxin用户,(用于管理nginx服务,您也可以随意指定的哟~) useradd -s /sbin/nologin nginx 2.安装基础环境 yum -y install gcc pcre-devel openssl-devel zlib-devel 3.安装ngi

nginx的平滑升级方法:

最简单的nginx的平滑升级方法: 1 找到nginx的执行文件的路径 # ps auxf|grep nginx  记下nginx的master进程 pid(我这里是2752 ) 2 查看当前nginx的版本及编译参数: # nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-16) (GCC) built with OpenSSL 1.0.1e-fips 11 Feb 2013 TLS S

nginx不间断服务平滑升级

(1)备份旧的nginx和配置文件 cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/bak_nginx #备份旧版程序 cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/bak_nginx.conf #备份配置文件 (2)编译安装新版本  ./configure --user=www --group=www --prefix=/usr/local/nginx --with-

nginx平滑升级

Nginx的平滑升级 1.查看当前版本 #cd /usr/local/nginx/ #进入Nginx安装目录 # sbin/nginx -V #查看版本 nginx version: nginx/0.7.60 configure arguments: –user=www –group=www –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module #编译项 得到原来./configure 的编译项

nginx 平滑升级tengine

wget  http://tengine.taobao.org/download/tengine-1.5.1.tar.gz //下载Tengine1.5.1版本 tar zxvf tengine-1.5.1.tar.gz //解压到当前目录 cd tengine-1.5.1 //进入到目录 ./configure //执行安装脚本 make //编译安装 mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old //备份ngin

nginx通过shell脚本平滑升级版本

1.简介 有时候nginx发布了新BUG或者添加了新的功能时,想要更新的时候服务又不能中断,这时候就要用到nginx的平滑升级了. 该脚本同样适用于添加新扩展,添加新扩展的时候只需要把更新的版本修改为当前版本,更新的时候把需要添加的扩展加上去即可.我这里nginx安装目录为/usr/local/nginx当前系统,阿里云ECS CentOS 7 64位 2.查看nginx版本与编译信息/usr/local/nginx/sbin/nginx -V 注:这里的扩展要记录下来(重要),等下升级的时候用

Nginx平滑升级版本!

一.解释nginx的平滑升级 随着nginx越来越流行使用,并且nginx的优势也越来越明显,nginx的版本迭代也开始了加速模式,1.9.0版本的nginx更新了许多新功能,例如stream四层代理功能.伴随着nginx的广泛应用,版本升级必然是越来越快的,线上业务不能停,此时nginx的升级就是运维的重要工作了,下面就带大家一起来理解下nginx平滑升级. 二.nginx平滑升级原理 多进程模式下的请求分配方式 Nginx默认工作在多进程模式下,即主进程(master process)启动后

nginx1.8.0版本平滑升级新版本1.9.7

首先查看现在环境nginx的版本为1.8.0 编译的参数只指定了安装路径: [[email protected] sbin]# ./nginx -V nginx version: nginx/1.8.0 built by gcc 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC) configure arguments: --prefix=/usr/local/nginx 平滑升级步骤如下: 下载nginx1.9.7版本,解压并进入解压后的目录 [[email pro

Nginx服务器 安装 与平滑升级详细介绍   简单使用1

#nginx -V (-V 可以显示出当时的标准,添加了什么模块) [[email protected] nginx-1.8.0]# ./configure --help |grep proxy --without-http_proxy_module        disable ngx_http_proxy_module --http-proxy-temp-path=PATH        set path to store http proxy temporary files --with-