spring cloud gateway 中碰到的坑-请求路径404问题
spring cloud 使用过程中碰到的坑,请求地址如下,请求category 项目显示菜单列表的接口,但是报404问题
*******
原因:
gateway项目中配置问题,出现问题配置如下,两个项目admins,category ,分别对应如下配置
- id: admins_router uri: lb://API-ADMINS predicates: - Path=/admin/hello,/admin/** filters: - StripPrefix=1 - id: category_router uri: lb://API-CATEGORY predicates: - Path=/admin/categories/** filters: - StripPrefix=1 - Token=true
上述配置admins_router 的Path 属性中的/admin/** 就是问题所在,因为配置中引入filters的StripPrefix=1,所以gateway网关会对请求地址进行移除一个路径/admin,最后相当于*******,这样请求就会打到admins 项目中,刚好路径/admin/**满足,但是admins 项目时没有categories 接口的,所以会报404错误。
改进方法:
1.修改配置/admin/**为/admin/tokens/**,避免网关请求接口在其他项目中也满足,但是又没实际的接口
2.admins_router和category_router位置换下也是一种方式,不建议。
总结:这个404问题花了一个晚上也没找到,还是有点粗心大意,加上gateway 也是跟视频学的,一些细节问题也不是特别清楚
下一篇:
雪花算法、uuid和自增id的区别