• 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服务是否可以继续访问
  • 相关阅读:
    技术文档生成工具:appledoc
    Runtime之方法
    swift开发新项目总结
    iOS调试通过UILocalNotification或RemoteNotification启动的app
    github源码学习之UIImage+YYWebImage
    用NSAttributedString实现简单的图文混排
    用block做事件回调来简化代码,提高开发效率
    用drawRect的方式实现一个尺子
    Xcode自定义代码块
    简单的数据库设计及使用(FMDB)
  • 原文地址:https://www.cnblogs.com/it-baibai/p/12913795.html
Copyright © 2020-2023  润新知