【实现原理】
1.搭建ConsulServer 专门存放负载均衡注册配置信息
2.nginx 间隔时间动态获取最新的ConsulServer配置信息
【实现方式工作】
Zookeeper、 Consul、 Eureka
【传统方式弊端】
如果upstream需要扩张新的服务器,必须要重启nginx服务器才能 获取都最新的配置,无需reload 动态负载均衡 。
【实现步骤】
1.Consul 环境搭建
wget https://releases.hashicorp.com/consul/0.7.5/consul_0.7.5_linux_amd64.zip
2.解压 consul_0.7.5_linux_amd64.zip
3. unzip consul_0.7.5_linux_amd64.zip
4. systemctl stop firewalld
5. ./consul agent -dev -ui -node=consul-dev -client= 172.30.191.67
6. 172.30.191.67:8500
7. 使用PostMan 注册Http服务
http://172.30.191.67:8500/v1/kv/upstreams/fl/192.168.212.1:8081
8. 安装nginx-upsync-module
wget https://github.com/weibocom/nginx-upsync-module/archive/master.zip
作用 :nginx 动态获取最新 upstream
备注 :1. wget http://nginx.org/download/nginx-1.9.10.tar.gz
2. 教程地址 : 06第六节-高性能Nginx服务器-安装Nginx_哔哩哔哩_bilibili
nginx-upsync-module 简介
Upsync 是新浪微博开源的基于Nginx 实现动态配置的三方模块。Nginx-Upsync-Module的功能是拉取Consul的后端serber的列表,并动态更新Nginx的路由信息。并且动态更新Nginx的路由信息,此模块不依赖于任何第三方模块。Consul作为Nginx的DB,利用Consul的kv服务,每个Nginx Work 进程独立的去拉取各个upstream的配置,更新各自的路由。