如何通过web.config在具有地址转换的反向代理后面强制特定wsdl端点



我们有一个Nginx反向代理集,用于发送来自的流量

https://ws.mydomain.com/staging/service.asmx

到我们的IIS服务器10:

http://localmachine/ws/staging/service.asmx

(发送ws.mydomain.com作为主机头(

问题是,当我们调用https://ws.mydomain.com/staging/service.asmx?WSDL时,自动生成的wsdl显示一个MIXED端点:

<soap:address location="http://ws.mydomain.com/ws/staging/service.asmx"/>

而不是

<soap:address location="https://ws.mydomain.com/staging/service.asmx"/>

我在谷歌上搜索了很多,但我找不到一种方法来通过web.config强制指定一个特定的URL,或者指定一个基地址(BEFORE-service.asmx的所有内容(

Apache服务器中,当Apache用作反向代理时,可以通过ProxyPreserveHost指令实现该功能
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost
Nginx中没有ProxyPreserveHost,但您可以尝试proxy_set_header指令。

proxy_set_header Host $host;

请参阅以下链接
https://serverfault.com/questions/87056/when-nginx-is-configured-as-reverse-proxy-can-it-rewrite-the-host-header-to-the
https://www.nginx.com/resources/wiki/start/topics/examples/likeapache/
此外,这里还有一个重写WSDL位置属性的变通方法
反向代理背后的WebService
如果有什么我可以帮助的,请随时告诉我。

最新更新