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