Proxing webservices (Webservices, WSDL, SOAP)
Andrew Alexeev
andrew at nginx.com
Mon Feb 11 14:56:56 UTC 2013
On Jan 30, 2013, at 3:57 PM, pricne5 wrote:
> What is the correct way to proxing to any remote webservice? How to use
> nginx in front of IIS or other web server, who serves webservices?
>
> As an example we have any remote SOAP webservice at
> http://B:8089/getClientService/getClientService?wsdl. In SOAP document of
> these webservice we have endpoint location:
> .....
> <service name="getClientService">
> <port name="getClientService"
> binding="tns:getClientServiceBinding">
> <soap:address
> location="http://B:8089/getClientService/getClientService"/>
> </port>
> </service>
> .....
>
> If we use proxy_pass:
>
> server {
> listen 80;
> server_name A;
> location /{
> proxy_pass http://B:8089/;
> }
>
> nginx won't rewrite(or change) SOAP's endpoint address to itself, so any
> futher SOAP requests will fail, because requesting side makes request to
> direct host described at SOAP endpoint location :(
You want to change "soap:address" URL on-the-fly to point next SOAP request(s) to http://A:80/getClientService/getClientService, right?
Did you try sub_module?
http://nginx.org/en/docs/http/ngx_http_sub_module.html
More information about the nginx
mailing list