zoukankan      html  css  js  c++  java
  • Nginx的平滑重启和平滑升级

    一,Nginx的平滑重启
    如果改变了Nginx的配置文件(nginx.conf),想重启Nginx,可以发送系统信号给Nginx主进程的方式来进行。
    在重启之前,要确认Nginx配置文件的语法是正确的。

    测试配置文件是否正确:
    /usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    如果配置文件不正确,屏幕会提示配置文件的第几行出错:
    nginx:[emerg] invalid number of arguments in "autoindex" directive in /usr/local/nginx/conf/nginx.conf:29
    nginx:configuration file /usr/local/nginx/conf/nginx.conf test failed
    如果配置文件正确,屏幕将提示以下两行信息:
    the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    configuration file /usr/local/nginx/conf/nginx.conf test is successful

    平滑重启nginx
    对于Nginx 0.8.x之前的版本 kill -HUP `cat /usr/local/nginx/nginx.pid`
    对于Nginx 0.8.x之后的版本 /usr/local/webserver/nginx/sbin/nginx -s reload

    Nginx的平滑升级

    当需要将正运行的Nginx升级,可以在不中断服务的情况下进行,具体步骤:
    1、使用新的可执行程序替换旧的可执行程序。下载新的Nginx,重新编译到旧版本的安装路径中。

    重编译之前,先备份一下旧的可执行文件。

    2、执行以下指令,他将存储有旧版本主进程ID的文件重命名为.oldbin:
    kill -USR2 旧版本的Nginx主进程号
    一般情况下是这样的:kill -USR2 `cat /usr/local/nginx/nginx.pid`
    可以用 ls /usr/local/nginx/logs来查看是否改名

    3、执行新版本的Nginx可执行程序。
    ulimit -SHn 65535
    /usr/local/nginx/sbin/nginx

    4、此时新旧版本的Nginx会同时运行,共同处理请求。要逐步停止旧版本的Nginx,必须发送WINCH信号给旧的主进程。然后,他的工作进程将从容关闭。
    kill -WINCH 旧版本的Nginx主进程号

    5、一段时间后,旧的工作进程处理完了所有的请求后退出,仅由新的进程来处理输入请求了。可用下面的命令查看:
    ps -ef | grep nginx

    6、现在可以决定使用新版本还是恢复到旧版本:
    kill -HUP 旧的主进程号 :Nginx在不重载配置文件的情况下启动他的工作进程
    kill -QUIT 新的主进程号 :从容关闭其工作进程
    kill -TERM 新的主进程号 :强制退出
    kill 新的主进程号或旧的主进程号:如果因为某些原因新的工作进程不能退出,则向其发送kill信号

    新的主进程退出后,旧的主进程会移除.oldbin后缀,恢复为他的.pid文件,这样,一切就都恢复为升级之前了。
    如果尝试升级成功,而自己又希望保留新版本时,可发送QUIT信号给旧的主进程,使其退出而只留下新的进程运行:kill -QUIT 旧主进程号

    附:Nginx的信号控制
    Nginx支持以下几种信号:
    TERM,INT 快速关闭
    QUIT 从容关闭
    HUP 平滑重启,重新加载配置文件
    USR1 重新打开日志文件,在切割日志时用途较大
    USR2 平滑升级克执行程序
    WINCH 从容关闭工作进程

  • 相关阅读:
    CSS3—— 2D转换 3D转换 过渡 动画
    CSS3——边框 圆角 背景 渐变 文本效果
    CSS3——表单 计数器 网页布局 应用实例
    CSS3——提示工具 图片廓 图像透明 图像拼接技术 媒体类型 属性选择器
    CSS3——对齐 组合选择符 伪类 伪元素 导航栏 下拉菜单
    CSS3——分组和嵌套 尺寸 display显示 position定位 overflow float浮动
    CSS3——盒子模型 border(边框) 轮廓(outline)属性 margin外边距 padding填充
    Eclipse连接数据库报错Local variable passwd defined in an enclosing scope must be final or effectively final
    数据库——单表查询
    数据库——添加,修改,删除
  • 原文地址:https://www.cnblogs.com/study100/p/3524118.html
Copyright © 2011-2022 走看看