nginx的平滑升级,不间断服务

来源:互联网 发布:淘宝网的管理模式分析 编辑:程序博客网 时间:2024/05/22 14:30
  1. 开始之前先查看一下当前使用的版本。
    [root@localhost ~]# ps -ef | grep nginx
    root 21196 1 0 23:40 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
    nginx 21197 21196 0 23:40 ? 00:00:00 nginx: worker process
    root 21199 20993 0 23:42 pts/0 00:00:00 grep –color=auto nginx
    查看服务器上安装的nginx版本号,主要是通过ngix的-v或-V选项
    Linux下查看Nginx安装目录、版本号信息?
    -v 显示 nginx 的版本。
    -V 显示 nginx 的版本,编译器版本和配置参数。
    [root@localhost ~]# /usr/sbin/nginx -v
    nginx version: nginx/1.8.0
  2. 可以通过平滑升级的方式解决这个问题,在平滑升级时
  3. 在不停掉老进程的情况下,启动新进程。
  4. 老进程负责处理仍然没有处理完的请求,但不再接受处理请求。
  5. 新进程接受新请求。
  6. 老进程处理完所有请求,关闭所有连接后,停止。
    Nginx就支持平滑升级的方式,可以不间断提供服务。
    我第一次安装Nginx的时候故意安装了一个低版本的,这次来测试一下平滑升级。
    已安装版本: nginx-1.8.0
    新版本Nginx: nginx-1.9.9
    下载最新Nginx上传到服务器
    ① 解压
    [root@localhost ~]# cd /usr/local/software/
    [root@localhost software]# tar -zxvf nginx-1.9.9.tar.gz
    ② 编译
    [root@localhost local]# cd /usr/local/software/nginx-1.9.9
    [root@localhost nginx-1.9.9]# ./configure –prefix=/usr/local/nginx
    [root@10.10.90.97 ~]# ./configure –prefix=/usr/local/nginx –with-http_stub_status_module
    [root@localhost nginx-1.9.9]# make
    注意千万不要执行 make install ,因为会将原来的Nginx文件全部替换,达不到平滑升级的效果。
    ③ 备份旧版本Nginx的可执行文件
    [root@localhost objs]# cd /usr/local/nginx/sbin/
    [root@localhost sbin]# ls
    nginx
    [root@localhost sbin]# cp nginx nginx.old
    [root@localhost sbin]# ls
    nginx nginx.old
    ④ 替换Nginx可执行文件
    将新版本解压后文件夹objs里的nginx可执行文件,替换掉老版本sbin文件夹下的nginx可执行文件。
    [root@localhost nginx-1.9.9]# cp -rfp /usr/local/software/nginx-1.9.9/objs/nginx /usr/local/nginx/sbin/
    cp:是否覆盖”/usr/local/nginx/sbin/nginx”? y
    ⑤ 查看是否升级成功
    [root@localhost nginx-1.9.9]# cd /usr/local/nginx/sbin/
    [root@localhost sbin]# ./nginx -v
    nginx version: nginx/1.9.9