Nginx、php-fpm 重启和重载配置(平滑重启)

2 篇文章 0 订阅

Nginx

Nginx进程分为master主进程和worker工作进程。master进程通过信号通知worker进程执行工作。

  • 命令
    • sudo nginx -s reload 重载配置(平滑重启)
    • sudo service nginx restart 重启

我们先看看没有请求的情况下,操作以上命令在服务器上展示的结果。
nginx 重载配置
nginx 重启
很明显的可以看到,当 nginx reload 的时候 master 进程ID是没有变化的,worker 进程ID是有变化的。而nginx restart 的时候 masterworker的进程ID都有变化。处理过程接下来再讨论,我们再来看看正在处理请求的情况下,nginx 进程变化情况。

watch命令进行实时监控

watch -n1 'ps -ef | grep nginx | grep -v grep'

sleep创造延时效果

<?php
	sleep(10);
	echo 'Hello';
sudo nginx -s reload

在这里插入图片描述在这里插入图片描述

sudo service nginx restart

在这里插入图片描述
在这里插入图片描述
可以看到这种情况下。reload 时,旧的worker进程和新的worker进程是共存的,旧的worker进程在处理完请求后会被杀掉。而 restart 时,不会存在新旧共存的情况(masterworker 都是)。如果有请求未完成时。旧的masterworker 会有一段时间处理请求(超时时间)。然后被杀掉,创建新的masterworker 进程。所以 restart 的时候nginx 会有卡顿的现象。

PHP-FPM

php-fpm进程也分为master主进程和worker工作进程。

  • 命令
    • sudo service php-fpm reload 重载配置(平滑重启)
    • sudo service php-fpm restart 重启

没有请求时,截图通 nignx 的截图类似,就不上图了。
在有请求未完成的时。当 restart,请求会直接断掉。reload 平滑重启的条件是在php-fpm.conf文件中设置process_control_timeout参数 (这个参数默认值为0),这个参数表示在php-fpm reload 后,旧的worker的最大存活时间。

参考连接

  • http://yueqian.sinaapp.com/a/61.html
  • https://www.robberphex.com/2017/02/599
  • https://blog.csdn.net/yusiguyuan/article/details/40924415
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值