zoukankan      html  css  js  c++  java
  • Nginx服务器的平滑启动、平缓停止、平滑升级

    注:

    Nginx服务在运行时,会保持一个主进程(master process)和一个或多个工作进程(worker process)。
    每一个进程都会有一个PID进程号,可以通过向主进程的PID进程号发送信号关闭服务器。
    Nginx服务器启动后,默认在Nginx服务器安装目录的logs目录中会产生文件名为nginx.pid的文件,此文件中保持的就是nginx服务主进程的PID。

    一、nginx服务器可接收的信号:

    (1) TERM 或 INT 快速停止nginx服务器。

    (2) QUIT 平缓停止nginx服务器。

    (3) HUP 平滑重启,使用新的配置文件启动进程,平缓的停止原有进程,

    (4) USR1 重新打开日志文件,常用于日志切割。

    (5) USR2 平滑升级,使用新版本的Nginx文件启动服务,平缓的停止原有Nginx进程。

    (6) WINCH 平缓停止worker process,用于Nginx服务器平滑升级。

    1.快速停止nginx服务器

    (1) kill -TERM `cat /usr/local/nginx/logs/nginx.pid`
    (2) kill -INT `cat /usr/local/nginx/logs/nginx.pid`

    2.平缓停止nginx服务器

    kill -QUIT `cat /usr/local/nginx/logs/nginx.pid`

    3.平滑重启nginx服务器

    (1) kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
    (2) /usr/local/nginx/sbin/nginx -s reload

    4.平缓停止工作进程

    kill -WINCH `cat /usr/local/nginx/logs/nginx.pid`

    5.强制停止nginx

    pkill -9 nginx

    6.停止nginx服务器的命令

    (1) /usr/local/nginx/sbin/nginx -s stop
    (2) pkil nginx

    7.检查对nginx.conf文件的修改是否正确

    (1) nginx -t -c /usr/local/nginx/conf/nginx.conf

    (2) /usr/local/nginx/sbin/nginx -t

    二、nginx服务器平滑升级过程如下:

    注:为实现nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此建议用户安装新服务器之前先备份旧的服务器。

    1.编译新版本的nginx

    (1) tar -xvf nginx-1.14.2.tar.gz #解压
    (2) cd nginx-1.14.2 #进入解压后的目录
    (3) ./configure --prefix=/usr/local/nginx #预编译路径和老版本的安装路径保持一致。
    (4) make #编译

    2.备份旧版本可执行nginx,复制新版本的nginx可执行nginx

    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old #备份
    cp objs/nginx   /usr/local/nginx/sbin/ #复制新版本可执行文件
    /usr/local/nginx/sbin/nginx -t #测试新版本是否正常

    3.平滑重启升级nginx

    kill USR2 ` cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g USR2 #发送平滑升级的信号
    kill -WINCH `cat /usr/local/nginx/log/nginx.pid` 或 /usr/local/nginx/sbin/nginx -g WINCH #发送平缓停止旧服务器的信号
    /usr/local/nginx/sbin/nginx -V #显示最新编译的版本信息即可。

     三、平滑升级重新整理步骤

     1 weget -c http://nginx.org/download/nginx-1.15.0.tar.gz
     2 #下载新版本,解压软件包后进入
    

    3 ./configure && make 4 #预编译和编译

    5 cd objs 6 #进入编译好的目录
    7
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old 8 #备份老版本启动脚本
    9
    cp nginx /usr/local/nginx/sbin/nginx 10 #拷贝新版本进程号

    11 cp /usr/local/nginx/logs/nginx.pid /usr/local/nginx/logs/nginx.pid.oldbin 12 #备份老版本主进程号

    13 kill -USR2 `cat /usr/local/nginx/logs/nginx.pid` 14 #生产新版本进程号

    15 kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` 16 #关闭老版本进程号
  • 相关阅读:
    IE11浏览器:请不要再叫我IE,谢谢
    Hadoop HA高可用搭建流程
    YARN
    MapReduce
    HDFS
    shell
    shell总结
    linux总结
    maven+log4j
    Spring
  • 原文地址:https://www.cnblogs.com/IMSCZ/p/10511339.html
Copyright © 2011-2022 走看看