• Nginx 平滑升级


    热部署

    (方法一)

    1. 查看原编译参数
    # 升级一般是添加新的模块,或者升级版本,所以要参考以前编译的模块,如果不添加,那么以前的模块就不能使用了
    [root@node3 ~]# /usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.16.1
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
    configure arguments: --prefix=/usr/local/nginx
    
    1. 预编译/编译/安装
    ./configure --prefix=/usr/local/nginx  --with-http_stub_status_module
    make && make install
    

    3.直接升级

    make upgrade
    

    (方法二)

    1. 编译安装nginx-1.16.1
    yum -y install gcc gcc-c++ pcre-devel zlib-devel    #安装依赖包
    useradd -M -s /sbin/nologin nginx    #添加程序运行用户
    tar -zxvf nginx-1.16.1.tar.gz -C /usr/src/    #解包
    cd /usr/src/nginx-1.16.1/
    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx
    make 
    make install    #配置编译并且安装
    /usr/local/nginx/sbin/nginx        #启动nginx服务
    
    1. 查看升级之前的nginx版本,同时获取旧nginx版本的编译参数
    #/usr/local/nginx/sbin/nginx -V
    nginx version: nginx/1.16.1
    built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) 
    configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx
    
    1. 编译nginx-1.18.0(只编译不安装)
    tar -zxvf nginx-1.18.0.tar.gz -C /usr/src/    #解包
    cd /usr/src/nginx-1.18.0/
    ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx/ --with-http_v2_module --with-http_ssl_module --with-http_sub_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-http_realip_module 
    make    #配置编译并且安装
    
    1. 备份旧版本的nginx的执行程序
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
    
    1. 替换旧的Nginx的执行程序
    cp /usr/src/nginx-1.18.0/objs/nginx /usr/local/nginx/sbin/
    
    1. 使nginx的旧版本停止接收请求,有Nginx新版本接替,且老进程处理完所有请求,关闭所有连接后,停止
    kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
    
    1. 查看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.18.0
    
    1. 从容关闭旧进程
    kill -QUIT `cat nginx.pid.oldbin`
    
    1. 查看服务运行状态
    netstat -aupt | grep nginx
    getnameinfo failed
    tcp        0      0 *:http                      *:*                         LISTEN      6963/nginx
    
    1. 使用客户端验证Nginx服务是否可以继续访问
  • 相关阅读:
    Spring spEL
    Spring 使用外部部署文件
    Spring 自动装配
    spring 属性配置细节
    hdu 1054 Strategic Game
    fzu 2037 Maximum Value Problem
    将博客搬至CSDN
    HDU 4714 Tree2Cycle
    HDU 1009 The Shortest Path in Nya Graph
    POJ 1942 Paths on a Grid 组合数的优化
  • 原文地址:https://www.cnblogs.com/it-baibai/p/12913795.html
Copyright © 2020-2023  润新知