Nginx如何配置动态负载均衡

nginx-stream-upsync -module有- -个兄弟nginx upsync -module,其提供了HTTP七层动态负载均衡,动态更新上游服务器不需要reload nginx.当前最新版本是基于Nginx1.9.10开发的,因此兼容1.9.10+版本。 其提供了基于consul和eted进行动态更新上游服务器实现。本部分基于Nginx 1.9.10 版本和consul配置中心进行演示。

 

首先,需要下载并添加nginx-stream- upsync -module模块最新版本。

 

./configure --prefix-/usr/servers --with-stream --add-module- 。/nginx-stream-upsync-module

 

1. upstream配置

 

upstream mysql_ backend {

 

server 127.0.0.1:1111; #占位server

 

upsync 127.0.0.1:8500/v1/kv/upstreams/mysql_ backend upsync_ timeout -6m

 

upsync_ interva1=500ms upsync_ type=consul strong_ dependency=off;upsync_ dump_ path /usr/servers/nginx/conf/mysq1_ backend.conf;

 

}

 

upsyne指令指定从consul 哪个路径拉取上游服务器配置: upsync_ timeout 配置从consul拉取上游服务器配置的超时时间: upsync_ interval 配置从consul拉取上游服务器配置的间隔时间: upsyne. .ype 指定使用consul配置服务器; strong _dependency 配置nginx在启动时是否强制依赖配置服务器,如果配置为on,则拉取配置失败时nginx启动同样失败。

 

upsync. _dump_ path 指定从consul 拉取的上游服务器后持久化到的位置,这样即使consul服务器出问题了,本地还有一个备份。

 

 

2.从Consul添加上游服务器

 

curl -x pur -d "(\"weight\":1。 \"max_ falls\";2, \"fail_ _timeout\":10)":8500/v1/kw/ upstreams /mysql. backend/ 10.0.0.24:3306

 

curl -x PUT -d "(\"weight\":1, \"max_ fails\":2,\"fall_ timeout\";10}":8500/v1/ kv/upstreams/mysql. backend/192.168.0.11:3306

 

3.从Consul删除上游服务器

 

curl -X DELETE  :8500/v1/kv/upstreams/mysq1_ backend/192.168.0.11:3306

 

4. upstream_ show

 

server {

 

listen 1234;upstream_ show;

 

}

 

配置uptream. show指令后,可以通过curl hp:///7./.1:123/pstramn show来查看当前动态负载均衡上游服务器列表。

 

到此动态负载均衡就配置完成了,我们已讲解完动态添加/删除上游服务器。在实际使用时,请进行压测来评测其稳定性。在实际应用中,更多的是用HaProxy进行四层负载均衡,因此,还是要根据自己的场景来选择方案。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。