为什么 zuul 不更改 http header 位置的 dowstream 服务重定向 ip?

Why zuul doesn't change dowstream service redirect ip in http header location?

我在使用 zuul 的反向代理中遇到问题。

我的应用有一个使用 spring 安全性进行身份验证的下游服务。当用户请求 Index.jsp.

时,该项目重定向到 login.jsp

我在zuul项目中的zuul配置是这样的:

 zuul:
  #addProxyHeaders : true
  #ignoreSecurityHeaders: false
  routes:
    trp:
      path: /app/**
      url: http://192.168.251.141:5050/app
server:
    port: 80

但是当用户调用 http://localhost/app/Index.jsp application redirect to http://192.168.251.141:5050/app/Login.jsp

谷歌搜索后我发现响应是这样的:

Content-Encoding    gzip
Content-Type    text/html
Date     Mon, 26 Dec 2016 09:02:44 GMT
Location    http://192.168.251.141:5050/app/Login.jsp
Transfer-Encoding    chunkedVary    
Accept-Encoding  
X-Application-Context    application:80
X-Content-Type-Options    nosniff
X-Frame-Options    SAMEORIGIN
X-XSS-Protection    1; mode=block

为什么是Locationheaderhttp://192.168.251.141:5050/app/Login.jsp?为什么 Zuul 不改变这个 ip?

此配置通过使用 proxy_redirect 模块在 nginx 中工作。如何通过 zuul 路由更改位置?

Zuul 默认不重写任何响应。您的下游服务必须知道如何处理 zuul 添加并重定向到那里的 X-Forwarded-Host header。另一种选择是编写一个重写 Location header.

的 zuul 过滤器