我有一个使用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。
答案 0 :(得分:1)
Zuul实际上是在默认转发请求之前从请求中剥离代理前缀。对于单个服务,您可以使用stripPrefix=false
关闭此行为,如下所示。如果您想要所有路线,那么zuul.stripPrefix=false
application.yml
zuul:
routes:
users:
path: /myusers/**
stripPrefix: false
希望这能解决您的问题。