Zuul代理背后的春天

时间:2016-08-12 15:46:48

标签: spring-boot spring-ws netflix-zuul

我有一个使用spring-WS实现WSDL的微服务(spring-boot)。 计划是使用Zuul通过网关服务器访问WSDL。

从网关访问:http // 192.168.1.5:8080 / integration / ws / test.wsdl

Zuul路由在Gateway配置:

integration:
  sensitive-headers:
  path: /integration/**
  url: http://localhost:9090

返回的WSDL具有正确的端口号(8080)但主机名不正确。前缀" / integration"不归还。

<wsdl:service name="TestPortService">
    <wsdl:port binding="tns:TestPortSoap11" name="TestPortSoap11">
         <soap:address location="http://localhost:8080/ws"/>
    </wsdl:port>
</wsdl:service>

即使我手动设置X-Forwarded-For标头,主机名也似乎永远不会改变。 [这我没有Zuul测试]。为了让Spring-WS在代理服务器之后工作,我缺少什么?我设置了remote_ip_header&amp; Spring boot的应用程序属性中的protocol_header。

1 个答案:

答案 0 :(得分:1)

Zuul实际上是在默认转发请求之前从请求中剥离代理前缀。对于单个服务,您可以使用stripPrefix=false关闭此行为,如下所示。如果您想要所有路线,那么zuul.stripPrefix=false

application.yml
 zuul:
  routes:
    users:
      path: /myusers/**
      stripPrefix: false

希望这能解决您的问题。