千家信息网

nginx平滑重启和平滑升级的方法是什么

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,今天小编给大家分享一下nginx平滑重启和平滑升级的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下
千家信息网最后更新 2024年11月24日nginx平滑重启和平滑升级的方法是什么

今天小编给大家分享一下nginx平滑重启和平滑升级的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

    nginx平滑重启

    如果修改了nginx的配置文件(nginx.conf),想要重启nginx,可以发送系统信号给Nginx的master进程来进行。

    平滑重启主要流程

    • 向master进程发送HUB信号(reload命令)

    nginx -s reloadkill -s gighup Nginx主进程号
    • master进程检查配置语法是否正确

      • 如果配置文件或者语法错误会出现下图代码

    • master打开监听端口

    • master进程使用新的配置文件启动新的worker子进程

    • master进程向老的worker子进程发送quit信号

    • 旧的worker子进程关闭监听,处理完当前连接后关闭进程

    图解

    当nginx接收到系统的SIGHUP信号,nginx会尝试解析配置文件(如果指定了配置文件,就使用指定的配置文件,否则就使用默认的),如果解析配置文件成功,(成功表示配置文件没有错误),就会应用新的配置文件。之后nginx启动新的worker子进程,然后等待旧的worker子进程完成所属任务后,关闭旧的worker子进程。如果遇到旧的worker子进程正在进行任务,那么旧的子进程继续为当前连接的客户提供服务,当所有的客户端服务完成后,旧的worker子进程被关闭。

    如果新的配置文件应用失败,那么nginx将继续使用旧的配置文件运行。

    nginx平滑升级

    当需要将正在运行的nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下使用新版本、重编译的nginx可执行程序替换旧版本的可执行程序

    平滑升级主要流程

    • 将旧的nginx配置文件替换为新的nginx配置文件(如果基础目录结构需要特殊操作)

    使用新的可执行程序替换旧的可执行程序,替换之前最好备份一下旧的配置文件

    • 向master进程发送USER2信号

    kill -s SIGUSER2 nginx进程号

    • master进程修改pid文件,加后缀.oldbin执行新的配置文件

    旧版本nginx 的master进程将nginx.pid重命名为nginx.oldbin

    • master进程使用新的nginx配置文件启动新的master进程

    执行新的配置文件,依次启动新的master进程和对应的worker子进程,此时新的nginx进程和旧的nginx进程同时运行,共同处理输入的请求

    • 验证新功能是否满足功能预期,如果满足就向旧的master进程发送WINCH信号,旧的worker子进程退出

    运行一段时间后,确保新配置文件生效,然后使用SIGWINCH向旧的master进程发送信号,逐步停止旧worker子进程

    kill -s SIGWINCH 旧nginx进程号kill -s SIGQUIT 旧nginx进程号
    • 这是决定使用新版本还是旧版本,如果使用新版本则继续发送SIGWINCH信号到旧的master中,如果需要回滚,则发送一下命令

    # nginx将不在重载配置文件的情况下启动他的worker子进程kill -s SIGHUP 旧的master号 # nginx关闭新配置文件的worker子进程kill  -s SIGQUIT 新的master号# nginx强制退出新的master主进程kill -s SIGTERM 新的master号

    新的master退出后,旧的master会议chu会移除.oldbin后缀的.pid文件,这样,回滚就完成了,如果尝试升级成功后,而且也希望保留新的服务器时,可以发送quit信号给旧的master,使其退出而只留下新的服务器运行

    以上就是"nginx平滑重启和平滑升级的方法是什么"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

    进程 文件 配置 信号 平滑 升级 服务 运行 知识 程序 篇文章 成功 服务器 版本 方法 任务 内容 后缀 命令 客户 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 沧州翻译软件开发 供电公司开展网络安全宣传周 宣传网络安全知识的重要性 用数据库做酒店入住管理系统 顺义区正规软件开发专业服务 哪些属于云数据库的安全优势 四川什么是网络技术服务产品介绍 衢州java软件开发项目 一唯特数码中文软件开发工具 网页运行起来后获取数据库 浙江搜道网络技术有限公司怎样 php软件开发新课堂 挑战炸毁一百个迷你服务器 dede数据库替换 绝地服务器AS 企业网络安全应急预案规范 数据库删除数据如何还原 w10服务器版普通电脑能装吗 我的世界服务器如何搞称号 删除数据库后怎么补救 中学生网络安全知识教育小报 阿里云服务器远程异常 软件开发公司的介绍 广东数据库开发工程师 网络技术服务公司名字 软件开发和测试生命周期 网络安全宣传日教案 泰州银联软件开发常见问题 宅加新互联网科技整装 怎么找出三列重复的数据库
    0