proxy to a .Net webservice
Igor Sysoev
igor at sysoev.ru
Tue May 11 11:42:09 MSD 2010
On Mon, May 10, 2010 at 05:37:58PM +0800, 冉兵 wrote:
> Hi,
>
> Company is testing nginx with a .net SOAP web service. The nginx and web service runs on two different ports. The problem is the web service returns the response with links that point to the web service's own TCP port instead of the port of the Nginx.
>
> Here is the config being used:
>
> // ....
>
> server
> {
> listen 89;
> server_name mysolr;
>
> location / {
> proxy_pass http://mysolr/;
> proxy_redirect off;
> proxy_set_header Host $host:$server_port;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header REMOTE-HOST $remote_addr;
> proxy_set_header X-Forwarded-For $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Why do use so many header with remote address ?
BTW, the last X-Forwarded-For overrides the previous one.
> }
> }
>
> In the above case, response comes back with all embedded links on port 80 rather than on 89.
You may try to set webservice to listen on 127.0.0.1:80 and set nginx
to listen on mysolr:80.
Also you may use
sub_filter http://mysolr:80/ http://mysolr:89/;
sub_filter_once off;
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list