Proxing webservices (Webservices, WSDL, SOAP)

pricne5 nginx-forum at nginx.us
Wed Jan 30 11:57:01 UTC 2013


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 :(

Thanks

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,235730,235730#msg-235730



More information about the nginx mailing list