Springcloud+Gateway+Nginx实现通过网关访问,nginx实现负载均衡。
需求:
我们通过Gateway的路由功能,访问Nginx服务器,Nginx通过反向代理和负载均衡,在访问我们后台的多个服务。
思维导图:
关键步骤:
Gateway配置:
- 配置 网关接收请求后,路由到:http://shopservice.com
spring:
application:
name: cloud-gateway-service
cloud:
gateway:
discovery:
locator:
enabled: true #开启从注册中心动态创建路由的功能,利用微服务名称经行路由
routes: #路由
- id: nginx-routh
uri: http://shopservice.com
predicates:
- Path=/**
hosts文件中添加如下内容:C:\Windows\System32\drivers\etc
- 配置域名
127.0.0.1 shopservice.com
Nginx配置 nginx.conf文件:
- 配置接收网关路由过来的请求,访问服务提供者路径
- 反向代理和负载均衡
#负载均衡
upstream myshopservices{
server 127.0.0.1:8001 weight=1;
server 127.0.0.1:8002 weight=1;
server 127.0.0.1:8003 weight=1;
}
server {
listen 80; #监听端口
server_name shopservice.com; #访问服务名
#根路径 /
location / {
#反向代理
proxy_pass http://myshopservices;
}
}
之后就可以访问网关:
http://localhost:9527/shop/1?token=123456