nginx运维中怎么样平滑升级
发布时间 - 2019-11-26 00:00:00 点击率:次你可以在不中断服务的情况下 - 新的请求也不会丢失,使用新的 nginx 可执行程序替换旧的(当升级新版本或添加/删除服务器模块时)。 ( 推荐学习:nginx运维
)
首先,使用新的可执行程序替换旧的(最好做好备份),然后,发送 USR2 (kill -USR2 pid)信号给主进程。
主进程将重命名它的 .pid 文件为 .oldbin (比如:/usr/local/nginx/logs/nginx.pid.oldbin),然后执行新的可执行程序,依次启动新的主进程和新的工作进程:
PID PPID USER %CPU VSZ WCHAN COMMAND 33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx 33134 33126 nobody 0.0 1368 kqread nginx: worker process (nginx) 33135 33126 nobody 0.0 1380 kqread nginx: worker process (nginx) 33136 33126 nobody 0.0 1368 kqread nginx: worker process (nginx) 36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
在这时,两个 nginx 实例会同时运行,一起处理输入的请求。要逐步停止旧的实例,你必须发送 WINCH 信号给旧的主进程,然后,它的工作进程就将开始从容关闭:
PID PPID USER %CPU VSZ WCHAN COMMAND 33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx 33135 33126 nobody 0.0 1380 kqread nginx: worker process is shutting down (nginx) 36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
一段时间后,旧的工作进程处理了所有已连接的请求后退出,就仅由新的工作进程来处理输入的请求了:
PID PPID USER %CPU VSZ WCHAN COMMAND 33126 1 root 0.0 1164 pause nginx: master process /usr/local/nginx/sbin/nginx 36264 33126 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx 36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx) 36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
这时,因为旧的服务器还尚未关闭它监听的套接字,所以,通过下面的几步,你仍可以恢复旧的服务器:
发送 HUP 信号给旧的主进程 - 它将在不重载配置文件的情况下启动它的工作进程
发送 QUIT 信号给新的主进程,要求其从容关闭其工作进程
发送 TERM 信号给新的主进程,迫使其退出
如果因为某些原因新的工作进程不能退出,向其发送 KILL 信号
新的主进程退出后,旧的主进程会由移除 .oldbin 前缀,恢复为它的 .pid 文件,这样,一切就都恢复到升级之前了。
如果尝试升级成功,而你也希望保留新的服务器时,发送 QUIT 信号给旧的主进程使其退出而只留下新的服务器运行:
PID PPID USER %CPU VSZ WCHAN COMMAND
36264 1 root 0.0 1148 pause nginx: master process /usr/local/nginx/sbin/nginx
36265 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36266 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
36267 36264 nobody 0.0 1364 kqread nginx: worker process (nginx)
# nginx
# 可执行
# 情况下
# 将在
# 你也
# 使其
# 几步
# 就将
# 你必须
# 新版本
# 配置文件
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在宝塔面板中修改默认建站目录?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】
如何快速搭建安全的FTP站点?
Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】
公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Android GridView 滑动条设置一直显示状态(推荐)
微信小程序 input输入框控件详解及实例(多种示例)
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
如何在IIS7上新建站点并设置安全权限?
php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】
Laravel如何实现事件和监听器?(Event & Listener实战)
EditPlus 正则表达式 实战(3)
Laravel如何实现用户注册和登录?(Auth脚手架指南)
如何快速搭建高效可靠的建站解决方案?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何在IIS服务器上快速部署高效网站?
php做exe能调用系统命令吗_执行cmd指令实现方式【详解】
微信小程序 scroll-view组件实现列表页实例代码
网站制作报价单模板图片,小松挖机官方网站报价?
Swift中swift中的switch 语句
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
如何在景安云服务器上绑定域名并配置虚拟主机?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
如何挑选优质建站一级代理提升网站排名?
黑客如何利用漏洞与弱口令入侵网站服务器?
iOS正则表达式验证手机号、邮箱、身份证号等
如何在VPS电脑上快速搭建网站?
如何利用DOS批处理实现定时关机操作详解
如何制作一个表白网站视频,关于勇敢表白的小标题?
网站制作价目表怎么做,珍爱网婚介费用多少?
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
网页制作模板网站推荐,网页设计海报之类的素材哪里好?
Laravel如何自定义分页视图?(Pagination示例)
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
Laravel Seeder填充数据教程_Laravel模型工厂Factory使用
Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置
javascript日期怎么处理_如何格式化输出
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
浅析上传头像示例及其注意事项
如何在企业微信快速生成手机电脑官网?
在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何在IIS中新建站点并配置端口与物理路径?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
Laravel怎么连接多个数据库_Laravel多数据库连接配置
Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比

