zoukankan      html  css  js  c++  java
  • Nginx平滑升级

    有时候我们可能需要对Nginx进行升级,例如检测到Nginx漏洞,或者因为业务需要等情况。
    下面我就来说一下Nginx平滑升级步骤
    整个升级过程中,无需停止Nginx服务,不会影响到业务
    需求模拟:nginx-1.18.0 =》nginx-1.19.0
    环境说明:
    系统版本:Centos7.7
    Nginx版本:nginx-1.18.0

    (一)编译新版本nginx

    注意:无需执行make install,一旦执行make install会导致原nginx程序异常
    如需验证nginx业务是否有受到影响,请跳转至第三步

    tar -zxvf nginx-1.19.0.tar.gz
    cd nginx-1.19.0/
    ./configure --prefix=/usr/local/nginx
    make
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak    #原nginx可执行文件备份
    cp objs/nginx /usr/local/nginx/sbin/nginx    #新版本的nginx编译后,会在objs目录下生成一个可执行nginx文件,使用该文件代替原nginx可执行文件
    make upgrade    #执行升级,原nginx要求使用绝对路径运行,如下图。执行到这里就算是升级完成了

     (二)确认是否升级成功

    比较简单的办法,就是直接nginx -V查看一下版本信息,如下。可以可以看到升级到1.19版本了

    [root@bp nginx-1.19.0]# /usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.19.0
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
    configure arguments: --prefix=/usr/local/nginx

    (三)验证nginx业务是否受到影响

    我写了个脚本检测nginx页面返回码,如下

    [root@bp ~]# cat nginxcode.sh 
    #!/bin/bash
    while (true)
    do
        curl --silent -I 106.13.13.242|grep 200 >> code.txt
    done
    [root@bp ~]# nohup ./nginxcode.sh &
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    HTTP/1.1 200 OK
    。。。

    在平滑升级过程中,另开一个窗口查看脚本输出情况,该脚本正常情况下会一直输出200返回码,即说明nginx业务未受影响

  • 相关阅读:
    重新开始学习javase_对象的摧毁
    昨天一日和彭讨论post请求数据的问题
    昨天在公司加班,上午好像就是弄一个ftp的linux服务问题
    昨天有是发现一个新的技术问题
    昨天下午快要下班的时候让他们东软测试
    昨天也没有和家里通话,把时间给了一位同事
    早上8:45到达
    又是一个月初
    今天是下雨天
    从每天开始在工作上才算有点事情
  • 原文地址:https://www.cnblogs.com/biaopei/p/13045375.html
Copyright © 2011-2022 走看看