大数据全系列 教程
1869个小节阅读:464.9k
目录
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
下面开始配置Nginx:
xxxxxxxxxx
#动态去consul 获取注册的真实反向代理地址
upstream toov5{
#自己虚拟出的 作为监听用的 端口号 固定死的
server 127.0.0.1:11111;
#连接consul server动态获取upstream配置负载均衡信息
#使用192.168.20.101:8500 原生的 他自己虚拟出来的 不要乱改!读取的是toov5 这个分组的!!!
upsync 192.168.20.101:8500/v1/kv/upstreams/toov5
#配置从consul拉取上游服务器配置的超时时间
upsync_timeout=6m
#配置从consul拉取上游服务器配置的间隔时间0.5秒
upsync_interval=500ms
#指定使用consul配置服务器
upsync_type=consul
#配置nginx在启动时是否强制依赖配置服务器,如果配置为on,则拉取配置失败时nginx启动同样失败。
strong_dependency=off;
#动态拉取consulServer相关负载均衡配置信息持久化到硬盘上的指定文件中
upsync_dump_path /usr/local/nginx/conf/servers/servers_test.conf;
}
server {
listen 80;
server_name localhost;
location / {
#配置反向代理
proxy_pass http://toov5;
index index.html index.htm;
}
}
创建upsync_dump_path
xxxxxxxxxx
mkdir /usr/local/nginx/conf/servers/
upsync_dump_path指定从consul拉取的上游服务器后持久化到的位置,这样即使consul服务器出问题了,本地还有一个备份。
然后启动consul :
xxxxxxxxxx
[root@node0 opt]# ./consul agent -dev -ui -node=consul-dev -client=192.168.20.101
重启Nginx
xxxxxxxxxx
[root@node0 conf]# systemctl restart nginx
如果现在访问Nginx,出现502提示。
然后开始做动态负载均衡了!添加nginx Upstream服务开始:
1.使用linux命令方式发送put请求 添加这个 192.168.20.102:8080 到上游服务
xxxxxxxxxx
curl -X PUT http://192.168.20.101:8500/v1/kv/upstreams/toov5/192.168.20.102:8080
#执行后如显示如下结果,表示成功。
true
2、 使用postman方式
然后图形化界面: http://192.168.20.101:8500/ui/#/dc1/kv/upstreams/toov5/192.168.20.102:8080/edit
启动192.168.20.102上的tomcat1
xxxxxxxxxx
[root@node2 ~]# vim /opt/tomcat1/webapps/ROOT/index.jsp
from 192.168.20.102:8080
[root@node2 ~]# cd /opt/tomcat1/bin/
[root@node2 bin]# ./startup.sh
浏览器中请求http://192.168.20.101/进行测试,无论刷新多少次,都是如下界面。这是因为只有tomcat1这一个服务。
启动192.168.20.102上的tomcat2
xxxxxxxxxx
[root@node2 ~]# vim /opt/tomcat1/webapps/ROOT/index.jsp
from 192.168.20.102:9090
[root@node2 ~]# cd /opt/tomcat2/bin/
[root@node2 bin]# ./startup.sh
使用linux命令方式发送put请求 添加这个 192.168.20.102:9090到上游服务
xxxxxxxxxx
curl -X PUT http://192.168.20.101:8500/v1/kv/upstreams/toov5/192.168.20.102:9090
#执行后如显示如下结果,表示成功。
true
浏览器中请求http://192.168.20.101/进行测试,刷新浏览器,发现在两个服务之间来回切换了。
假如http://192.168.20.102:9090对应的服务性能是http://192.168.20.102:8080对应服务性能的2倍,可以做如下修改:
xxxxxxxxxx
{"weight":2, "max_fails":2, "fail_timeout":10, "down":0}
修改后再次测试,便可以实现如下切换了:两次9090,一次8080。