1.环境
nginx: 1.19.0
nacos: 1.3.1
openjdk: 1.8.0_181
nacos集群:
192.168.8.81
192.168.8.82
192.168.8.83
2.实现网关注册nacos中心
1)配置依赖pom.xml
2)修改配置文件
配置网关服务gatewaya的nacos集群注册中心地址、端口号
配置网关服务gatewayb的nacos集群注册中心地址、端口号
3.实现网关转发至服务
1)配置路由
配置网关服务gatewaya支持跨域访问及连接超时时间
配置网关服务gatewaya的路由转发到在注册中心已注册服务nacos-provider
配置网关服务gatewayb支持跨域访问及连接超时时间
配置网关服务gatewaya的路由转发到在注册中心已注册服务nacos-consumer
4.nacos-discovery实现数据访问
1)nacos-provider添加访问路径
5.nginx实现负载均衡
1)安装nginx
yum install nginx
2)修改配置文件
修改nginx.conf文件 ,配置网关集群的负载均衡
cd /usr/local/nginx/conf
#gzip on;
upstream gateways {
server 192.168.6.29:9527 weight=1;
server 192.168.6.29:9528 weight=1;
}
server {
listen 80;
server_name 192.168.6.29;
charset utf8;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://gateways;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
6.测试网关集群
启动nacos-provider、nacos-consumer、gatewaya、gatewayb应用,并进入nacos注册中心查询服务列表
测试gatewaya设置的路由test_a、test_c和gatewayb设置的路由test_a,浏览器访问http://192.168.8.81/hello ,转发到gatewaya时页面返回Hello Gateway A!字符串,转发到gatewayb时页面返回字符串Hello Gateway B!;
测试gatewayb设置的路由test_b,浏览器访问http://192.168.8.81/hello-rest/ayay,转发到gatewaya时返回404页面,转发到gatewayb时页面返回字符串ayay;
测试gatewayb设置的路由test_c,浏览器访问http://192.168.8.81/hello-feign/heihei 转发到gatewaya时返回404页面,转发到gatewayb时页面返回字符串heihei;