zoukankan      html  css  js  c++  java
  • 【转】Nginx强大的平滑升级

    转自:http://blog.csdn.net/u010028869/article/details/50484976

    每一款软件都存在更新换代,而我们更新软件的方式一般就是将低版本的卸载掉,然后安装新版本。但对于服务器软件来说,如果强行将服务器停止升级,这样原来在服务器上运行着的进程就会受到影响。如何解决这种问题呢?

    可以通过平滑升级的方式解决这个问题,在平滑升级时

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

    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@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

    可以看到Nginx已经从1.8.0成功的升级到了1.9.9,平滑升级成功。越来越觉得Nginx这款软件的确强大。

  • 相关阅读:
    leetcode二叉树相同的树
    leetcode二叉树中序遍历
    leetcode二叉树前序遍历
    leetcode数组中级Lc287.寻找重复数
    概要设计说明书
    leetcode二叉树对称二叉树
    小数点处理详解:切舍、切上、四舍五入
    C++多态的两种使用方式
    让Ogre的资源管理器为我们服务
    地形纹理Splatting技术(翻译)
  • 原文地址:https://www.cnblogs.com/ccgblog/p/7551577.html
Copyright © 2011-2022 走看看