加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

在重启NGINX过程时排空连接?

发布时间:2020-12-13 21:11:39 所属栏目:Nginx 来源:网络整理
导读:我在CentOS 6和7上使用NGINX 1.8.1.在我们的部署期间,要求NGINX停止,部署执行,NGINX再次启动.不幸的是,NGINX在停止期间似乎只有500个连接.由于我使用Ansible一次更新2/10主机,因此我们的许多客户可能会在整个部署过程中获得500分. 有没有办法通过NGINX设置让

我在CentOS 6和7上使用NGINX 1.8.1.在我们的部署期间,要求NGINX停止,部署执行,NGINX再次启动.不幸的是,NGINX在停止期间似乎只有500个连接.由于我使用Ansible一次更新2/10主机,因此我们的许多客户可能会在整个部署过程中获得500分.

有没有办法通过NGINX设置让NGINX进程耗尽所有实时连接(即等待它们完成),同时在停止期间拒绝所有新连接?

我知道亚马逊的Elastic Load Balancers do have this functionality与NGINX有相同之处吗?

最佳答案
根据评论,您可以尝试使用防火墙解决此问题:

>任务:阻止传入的新连接,但保留相关和已建立的连接
>尝试:iptables -I INPUT -j DROP -p tcp –syn –destination-port 80(或443,适用于您的设置)设置规则,从而阻止新流量
>你的部署……
>尝试:iptables -D INPUT -j DROP -p tcp –syn –destination-port 80(或443,适用于您的设置)恢复规则,从而允许新的流量
>注意:我刚刚测试了这个,它按预期工作.但是:请不要将此视为理所当然,并为自己进行测试.欢迎反馈……

编辑:正如@Guntram Blohm在评论中指出的,最好使用iptables -I而不是iptables -A.在上面的代码中适当地改变了这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读