前两天服务器系统盘损坏了,被逼的备份公共微服务和数据库,总结一下配网关时遇到的坑。
正常启动nacos后,将gateway和其他业务微服务项目注册上nacos;
当需要转发时,在gateway的yaml文件中需要配置路由spring.cloud.gateway.routes属性
例如:
- id: uias
uri: lb://uias
predicates:
- Path=/uias-api/**
filters:
- StripPrefix=1
其中filters中的StripPrefix属性是转发到下游服务时剥离的路径个数,
例如/uias-api/login/admin请求经过这个gateway后,gateway会将/login/admin请求转发到uias的服务,如果有集群,则根据负载均衡转发到其中的一个uias服务。
需要注意:
如果请求路径中带有**/uias/**,则gateway会默认将整个请求转发到uias的服务;这是因为gateway会将同名的路径请求转发到同名服务,多层路径进行过滤都没有用。。。
这是gateway的默认机制,导致我排查问题排查半天,所以建议需要转发的请求在前端发起时都带上-api。