Zuul 在路由后重写主机名
Zuul Rewrites Host Name after Routing
每当请求到达 Zuul 时,我都会收到一个 302 重定向到要调用的实际服务的主机。所以 url 被 Zuul 重写了。我想阻止这种情况。用户应该只能看到 Zuul 的主机名。
我有一个 Spring Cloud Zuul 用作路由服务器。它具有以下配置:
zuul:
ignoredServices: '*'
routes:
service1:
path: /service1/**
serviceId: service1
stripPrefix: false
service2:
path: /service2/**
serviceId: service2
stripPrefix: false
login:
path: /login/**
sensitiveHeaders:
serviceId: login
stripPrefix: false
Zuul 使用 Eureka 进行服务发现。假设 logingateway
在 localhost:8081
上是 运行,在 localhost:8080
上是 Zuul。如果去localhost:8080/login
,我会先得到一个302,然后再去localhost:8081/login
。我不想要 302 重定向,我希望主机名保持不变。我没有找到关于这个问题的任何相关文件。谢谢。
正如@spencergibb 评论的那样,Zuul 没有对 HTTP 响应进行任何重写。也有一个未解决的问题:https://github.com/spring-cloud/spring-cloud-netflix/issues/8。共识是 Zuul 不会提供,但范围缩小到只重写位置 header,这是 302 重定向响应的一部分。您可以关注该问题以查看它的去向,但就目前而言,使用 Zuul built-in 过滤器是不可能的。
您始终可以为 Zuul 创建您自己的 Post 过滤器来自行执行此操作。查看 Zuul 文档以了解何时执行过滤器:https://github.com/Netflix/zuul/wiki/How-it-Works then read on how to write your own filter: https://github.com/Netflix/zuul/wiki/Writing-Filters
每当请求到达 Zuul 时,我都会收到一个 302 重定向到要调用的实际服务的主机。所以 url 被 Zuul 重写了。我想阻止这种情况。用户应该只能看到 Zuul 的主机名。
我有一个 Spring Cloud Zuul 用作路由服务器。它具有以下配置:
zuul:
ignoredServices: '*'
routes:
service1:
path: /service1/**
serviceId: service1
stripPrefix: false
service2:
path: /service2/**
serviceId: service2
stripPrefix: false
login:
path: /login/**
sensitiveHeaders:
serviceId: login
stripPrefix: false
Zuul 使用 Eureka 进行服务发现。假设 logingateway
在 localhost:8081
上是 运行,在 localhost:8080
上是 Zuul。如果去localhost:8080/login
,我会先得到一个302,然后再去localhost:8081/login
。我不想要 302 重定向,我希望主机名保持不变。我没有找到关于这个问题的任何相关文件。谢谢。
正如@spencergibb 评论的那样,Zuul 没有对 HTTP 响应进行任何重写。也有一个未解决的问题:https://github.com/spring-cloud/spring-cloud-netflix/issues/8。共识是 Zuul 不会提供,但范围缩小到只重写位置 header,这是 302 重定向响应的一部分。您可以关注该问题以查看它的去向,但就目前而言,使用 Zuul built-in 过滤器是不可能的。
您始终可以为 Zuul 创建您自己的 Post 过滤器来自行执行此操作。查看 Zuul 文档以了解何时执行过滤器:https://github.com/Netflix/zuul/wiki/How-it-Works then read on how to write your own filter: https://github.com/Netflix/zuul/wiki/Writing-Filters