zoukankan      html  css  js  c++  java
  • Nginx-在线升级、降级

    Nginx的在线升级不需要停服务

    1.我们要准备好升级的Nginx软件包,解压;

    [root@sxb-1 Nginx]# tar xf nginx-1.13.4.tar

    2.备份好原先的Nginx数据;

    [root@sxb-1 Nginx]# mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    
    [root@sxb-1 Nginx]# ls /usr/local/nginx/sbin/nginx.bak
    /usr/local/nginx/sbin/nginx.bak

    3.对解压Nginx目录进行配置,在目录里会出现先objs目录;编译 make;

    ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-http_dav_module --with-pcre=../pcre-8.40

    4.将我们编译好的数据copy到Nginx目录去;

    [root@sxb-1 nginx-1.13.4]# cp objs/nginx /usr/local/nginx/sbin/

    5.查看版本号

    [root@sxb-1 sbin]# /usr/local/nginx/sbin/nginx -v
    nginx version: nginx/1.13.4

    到这里我们在硬盘上的升级就完成了,接下来我们要替换内存中的Nginx数据;

    这里有两种方法;

    第一种为 make upgrade;

    第二种;

    我们要先查看一下Nginx进程号

    [root@sxb-1 sbin]# ps -ef | grep nginx
    root      25451      1  0 04:45 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx     25452  25451  0 04:45 ?        00:00:00 nginx: worker process
    root      33976  19429  0 05:15 pts/3    00:00:00 grep --color=auto nginx

    1.把我们的新版本加进来

    [root@sxb-1 sbin]# kill -USR2 25451
    [root@sxb-1 sbin]# ps -ef | grep nginx
    root      25451      1  0 04:45 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx     25452  25451  0 04:45 ?        00:00:00 nginx: worker process
    root      33977  25451  0 05:19 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx     33978  33977  0 05:19 ?        00:00:00 nginx: worker process
    root      33980  19429  0 05:19 pts/3    00:00:00 grep --color=auto nginx

    我们可以看到,出现了两个Nginx进程(bin/nginx为子进程)

    2.命令旧本nginx剩余任务完成后,不再接新的任务;

    [root@sxb-1 sbin]# kill -WINCH 25451
    [root@sxb-1 sbin]# ps -ef | grep nginx
    root      25451      1  0 04:45 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    root      33977  25451  0 05:19 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx
    nginx     33978  33977  0 05:19 ?        00:00:00 nginx: worker process
    root      33987  19429  0 05:22 pts/3    00:00:00 grep --color=auto nginx

    旧版本nginx不再产生子进程接任务;这里我们一般会把旧版本放置一段时间,以防新版本出现问题;

    3.将旧版本nginx清除掉;

    [root@vlnx251101 ~]# kill -QUIT 25451

    这样升级任务就完成了

    =================================================================================================

    降级操作:

    1.将我们备份的nginx.bak恢复到/usr/local/nginx/sbin 目录下;

    2.重复上面的操作;

  • 相关阅读:
    Jenkins的插件管理(安装和更新插件)
    [Flutter] MacOS/Windows Flutter 环境走一遍
    [Sw] 使用 Swoole Server task/协程 处理大数据量异步任务时注意
    [Sw] Swoole-4.2.9 可以尝试愉快应用 Swoole 协程
    [PHP] 常备的现代 PHP 项目开发准备
    [SF] Symfony 标准 HttpFoundationRequest 实现分析
    [Linux] umask 从三类人群的权限中拿走权限数字
    [Design] 后端程序的高并发与异步
    [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务
    [FE] 有效开展一个前端项目-V2 (vuejs-templates/webpack)
  • 原文地址:https://www.cnblogs.com/loganSxb/p/11202442.html
Copyright © 2011-2022 走看看