每当请求到达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重定向,我希望主机名保持不变。我没有找到关于这个问题的任何相关文件。感谢。
答案 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