Zuul 或 eureka set host header 为服务实例主机

Zuul or eureka set host header to service instance host

我们正在使用同一服务的三个实例,它们已在 eureka 中注册。前面有zuul

每当我们的服务尝试重定向到其中一个控制器(例如 /login)时,它会直接转到主机名:端口(在浏览器地址字段中可见),而不是再次通过 zuul 代理。这给了我们超时。 我们正在跟踪投入服务的 headers - host header 设置为我们服务的主机名。

它不应该使用 x-forwarded-host 中的地址吗?如何强制 zuul/eureka 这样做?或者我们应该调整一些 spring-boot 配置来使用它 host?

您的服务正在通过它自己的主机发送一个位置 header。您可以修改服务以便引用您的基本主机,或者您编写一个 zuul 过滤器在将响应发送到客户端之前修改响应 header。

过滤器指南如下:https://github.com/Netflix/zuul/wiki/Writing-Filters

您可以通过 RequestContext 修改 headers。

如果您从过滤器中创建了一个 bean,它将被注册,而无需您执行任何操作。