Nginx如何实现灰度发布

  介绍

这篇文章给大家分享的是有关Nginx如何实现灰度发布的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强> Nginx实现灰度发布的三种方法总结

灰度发布的主要原理是访问路由的控制,重点是保证每次访问的是同一个节点。

<强>方式一:通过调节负载均衡权重

,,,,,,,负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽,增加吞吐量,加强网络数据处理能力,提高网络的灵活性和可用性。

,,,,,,,负载均衡,英文名称为负载平衡,其意思就是分摊到多个操作单元上进行执行,例如Web服务器,FTP服务器,企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

 Nginx如何实现灰度发布

简单配置如下:

http  {,   upstream 才能;cluster  {,   ,,,ip_hash;, #如果你的系统中没有使用第三方缓存管理工具,,建议使用此方式   ,,,server  192.168.1.210:80 体重=5,,   ,,,server  192.168.1.211:80 体重=3,,   ,,,server  192.168.1.212:80 体重=1,,   ,,},   ,,   {server 才能;   ,,,listen  80;,   ,   的位置才能/,{,   ,,   proxy_next_upstream 才能,,,error 超时;   proxy_redirect 才能,,,,,,   proxy_set_header 才能,,,,Host  $主机;   # proxy_set_header 才能,,,X-Real-IP  remote_addr美元;   proxy_set_header 才能,,,,X-Real-IP  http_x_forwarded_for美元;   proxy_set_header 才能,,,,X-Forwarded-For  proxy_add_x_forwarded_for美元;   ,,client_max_body_size  100;   client_body_buffer_size 才能;256 k;   ,,proxy_connect_timeout  180;   proxy_send_timeout 才能,,,180;   proxy_read_timeout 才能,,,180;   proxy_buffer_size 才能,,,,8 k;   proxy_buffers 才能,,,,,,8,64 k;   proxy_busy_buffers_size 才能;128 k;   proxy_temp_file_write_size 才能;128 k;   proxy_pass 才能;http://cluster,,   ,,,},   ,,},   }

这种方式灰度发布通过重量来实现,但是这种方式只适合修改节点的行为,而且要求应用都是一模一样的,其实质作用是,节点增加或删除之后,对负载能力的调节,最终目的是为了让流量最终保持均衡。

<强>方式二。使用nginx + lua实现网络项目的灰度发布

的位置/,{   ,content_by_lua  & # 39;   ,,,,,myIP =, ngx.req.get_headers () (“X-Real-IP")   ,,,,,if  myIP ==nil 然后   ,,,,,,,myIP =, ngx.req.get_headers () (“x_forwarded_for")   ,,,,,结束   ,,,,,if  myIP ==nil 然后   ,,,,,,,myIP =ngx.var.remote_addr   ,,,,,结束   ,,,,,if  myIP ==,“公司出口IP"然后   ,,,,,,,ngx.exec (“@client")   ,,,,,   ,,,,,,,ngx.exec (“@client_test")   ,,,,,结束   ,,,& # 39;;   },      位置@client {   proxy_next_upstream 才能,,,error 超时;   proxy_redirect 才能,,,,,,   proxy_set_header 才能,,,,Host  $主机;   # proxy_set_header 才能,,,X-Real-IP  remote_addr美元;   proxy_set_header 才能,,,,X-Real-IP  http_x_forwarded_for美元;   proxy_set_header 才能,,,,X-Forwarded-For  proxy_add_x_forwarded_for美元;   ,,client_max_body_size  100;   client_body_buffer_size 才能;256 k;   ,,proxy_connect_timeout  180;   proxy_send_timeout 才能,,,180;   proxy_read_timeout 才能,,,180;   proxy_buffer_size 才能,,,,8 k;   proxy_buffers 才能,,,,,,8,64 k;   proxy_busy_buffers_size 才能;128 k;   proxy_temp_file_write_size 才能;128 k;   proxy_pass 才能;http://client;      }   位置@client_test {   proxy_next_upstream 才能,,,error 超时;   proxy_redirect 才能,,,,,,   proxy_set_header 才能,,,,Host  $主机;   # proxy_set_header 才能,,,X-Real-IP  remote_addr美元;   proxy_set_header 才能,,,,X-Real-IP  http_x_forwarded_for美元;   proxy_set_header 才能,,,,X-Forwarded-For  proxy_add_x_forwarded_for美元;   ,,client_max_body_size  100;   client_body_buffer_size 才能;256 k;   ,,proxy_connect_timeout  180;   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

Nginx如何实现灰度发布