充分利用nginx的reload功能平滑的上架和更新业务

以前更新我们都要停服务更新,不管什么时候更新,都可能有客户在访问,体验不好,二是如果有数据传输,可能会造成数据丢失。

nginx reload可以不间断更新配置文件,原理就是当我们修改配置文件发起reload命令后,nginx会保持以前的所有连接直到断开,新连接使用新配置,实现无间断切换。

nginx 支持if命令:我们可以将负载均衡中的服务器A指定我们的测试人员打开,其他客户走服务器B,然后我们在服务器A更新或者上架应用,如此反复,最后改为负载均衡完成切换。

步骤:

upstream A{
  server 192.168.3.12;
  server 192.168.3.13;
}

upstream B{
  server 192.168.3.14;
}

1、修改配置文件

if ($remote_addr ~ ^192\.168\.2\.192)

{proxy_pass  http://A;}

proxy_pass  http://B;

2、reload配置文件,查看日志,直到服务器A没有客户连接

3、服务器A更新或上架应用,测试

4、修改配置文件

if ($remote_addr ~ ^192\.168\.2\.192)

{proxy_pass  http://B;}

proxy_pass  http://A;

5、reload配置文件,查看日志,直到服务器B没有客户连接

6、服务器B更新或上架应用,测试

proxy_pass  http://A;

proxy_pass  http://B;

7、reload配置文件,查看日志,直到服务器AB都有客户访问

posted on 2018-01-18 14:46  徐应钟  阅读(894)  评论(0编辑  收藏  举报

导航