提问者:小点点

Spring Cloud Gateway:为什么路由uri属性被忽略?


我只有这个路线

spring.cloud.gateway.routes[0].id=x-service
spring.cloud.gateway.routes[0].uri=http://localhost:5555/x-service/v1/private/files
spring.cloud.gateway.routes[0].predicates[0]=Path=/v1/private/files

但是应用程序重定向到/v1/privacy/files

如何解决这个问题?


共1个答案

匿名用户

AFAIKspring-blod-网关Route构建器只考虑传递给UriSpc. uri(String uri)的主机名和端口,所以此时只有http://localhost:5555重要。

所以你需要使用Rewrite ePath网关过滤器重写你的路径,如下所示:

spring.cloud.gateway.routes[0].filters[0]=RewritePath=/v1/private/files, /x-service/v1/private/files

第一个参数是原始路径,第二个是替换器。
RegEx也可以在那里使用。

有关详细信息,请查看spring-cloud-网关参考文档。
我还建议阅读这篇文章。