Port forwarding problem

Francis Daly francis at daoine.org
Tue Jul 26 12:58:41 UTC 2011

On Tue, Jul 26, 2011 at 04:38:09PM +0400, Igor Sysoev wrote:
> On Tue, Jul 26, 2011 at 01:30:19PM +0100, Francis Daly wrote:
> > On Tue, Jul 26, 2011 at 06:35:23AM -0400, Quincy wrote:

Hi there,

> > > I have two machines. One is server with nginx and the other is NAT.
> > > On server I've got mediawiki on port 2222. I forwared port 55555 on my
> > > nat to server:2222. I have one big problem. When I try to open
> > > NAT_IP:55555 in my browser it redirects me to http://:2222.  What's
> > > wrong with my config?
> > 
> > I don't see a pure-config way to tell nginx to redirect using exactly
> > the Host: header sent by the client. I think that that is probably what
> > you want to have.
> "server_name_in_redirect off" forces to use client Host or, if there is
> no Host, server IP.

If the client sends

Host: hostname:1234

then "server_name_in_redirect off" causes nginx to redirect using


i.e., it drops the :port from the Host: header. Unless my testing
is broken.

It might be convenient to have an option of "use exactly what the
client sent", but that won't be very useful if the client sends a
broken hostname. ngx_http_validate_host() protects against the broken
hostname now.

But I don't have a patch to offer.

> However, this is probably issue with mediawiki.
> If mediawiki is run via FastCGI, then setting
> fastcgi_param  SERVER_NAME  MYNAMEl;
> fastcgi_param  SERVER_PORT  55555;
> may help.

Yes -- it would be good to show whether the redirect is coming from
nginx or mediawiki.

To the original poster: make a directory "temp" in your document root,
then do "curl -v http://NAT_IP:55555/temp", and if your nginx config
is such that that request will be handled internally within nginx, you
should see a HTTP 301 redirect to /temp/; if the full Location: header
shows port 55555, then nginx is processing the redirect as you intend,
and the original problem is likely best solved via mediawiki.

All the best,

Francis Daly        francis at daoine.org

More information about the nginx mailing list