0

我们有一个 Spring Cloud Gateway 的设置,它运行 consul 服务发现并将请求代理到集群中的服务。

当这些服务之一以标头响应时,该Location: /标头会在通过网关的途中被重写。

问题是网关似乎添加了在 Consul 中找到的服务本地主机名和端口。这个 url 对客户端当然是不可用的(或不可取的)。

我已经验证了上游服务器发送: Location: /

(由“redirect:/”Spring MCV 简写生成)

但是当它到达最终客户端时被重写为: Location: https://10.0.0.10:34567/

https://10.0.0.10:34567/是 consul 中服务的上游位置)

如果当然是不正确的。

我的问题是我找不到任何关于如何配置它的文档,也没有说明使用了哪些类(用于调试),所以我只是不知道从哪里开始寻找修复程序。

期望的行为当然是保持重定向不变。

在这种特殊情况下,我们使用基于主机的路由设置:

.route("app", r -> r.host("app.**").uri("lb://app"))

任何帮助或提示表示赞赏。

4

0 回答 0