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进行四层负载均衡,因此,还是要根据自己的场景来选择方案。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。