Zuul在路由后重写主机名

时间:2016-08-09 21:57:15

标签: spring-cloud netflix-zuul

每当请求到达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:8081localhost:8080上的Zuul正在运行。如果转到localhost:8080/login,我会先获得302,然后再获得localhost:8081/login。我不想302重定向,我希望主机名保持不变。我没有找到关于这个问题的任何相关文件。感谢。

1 个答案:

答案 0 :(得分:2)

正如@spencergibb评论的那样,Zuul没有重写HTTP响应。围绕这个也有一个悬而未决的问题:https://github.com/spring-cloud/spring-cloud-netflix/issues/8。一致认为,Zuul不会提供这一点,但范围缩小到只重写位置标题,这是302重定向响应的一部分。您可以按照该问题查看它的位置,但现在看来,Zuul内置过滤器无法实现。

您可以随时为Zuul创建自己的帖子过滤器。查看Zuul文档以了解何时执行过滤器:https://github.com/Netflix/zuul/wiki/How-it-Works然后阅读如何编写自己的过滤器:https://github.com/Netflix/zuul/wiki/Writing-Filters