Welcome! Log In Create A New Profile

Advanced

Re: Problem with updated nginx

Maxim Dounin
August 28, 2011 08:46PM
Hello!

On Sun, Aug 28, 2011 at 05:48:46PM -0400, pvsw1 wrote:

> Hi All,
>
> I have run nginx on OpenBSD for several years without problems. Recently
> I upgraded to a new OpenBSD and with that to a new nginx. I went from
> nginx 0.7.64 to 0.8.53p5
> nginx still works but I ran into a problem: nginx listens on
> localhost:10080. I use firewall rules to get my traffic there. For some
> reason 0.8.53 sometimes adds the portnumber to an URL resulting in error
> messages. I found a work around but that is not an acceptable final
> solution as it is very difficult to update everything and the problem
> will likely re-appear in the future.
>
> The details:
> nginx.conf:
> ...
> server {
> listen localhost:10080;
> server_name www.example.com:80;
>
> location ^~ /pfstat {
> root /var/mine/data;
> index index.html index.htm index.php;
> autoindex on;
> }
> ...
> }
> ...
>
> If a html file on the server contains <A HREF="pfstat"> I get a message
> that the connection to nginx was denied and the URL displayed in the
> browser is changed into something like www.example.com:10080/pfstat (the
> port on which nginx listens is added). If the html file on the server
> contains <A HREF="pfstat/"> (additional '/' at the end) everything works
> OK (the 10080 is NOT added to the URL). This problem only exists when
> referring to a directory, references to a file work normally (<A
> HFER="somefile.html">).
>
> Can anybody shed some light on this.
> Has anything been changed in this area?

Short answer:

port_in_redirect off;
http://wiki.nginx.org/HttpCoreModule#port_in_redirect

Long answer:

Most likely it worked for you previously since you have
"www.example.com:80" (note ":80") in "server_name" directive.
This is meaningless (it will never match), but resulting redirects
in 0.7.64 should look like

Location: http://www.example.com:80:10080/pfstat/

Since 0.8.48 directive "server_name_in_redirect" defaults to off,
and hostname from client's request will be used instead, without
any ":80". As a result will no longer have ":80" in them, likely
breaking things for you.

Correct aproach in both versions is to use

port_in_redirect off;

as shown above in short answer.

Maxim Dounin

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

Problem with updated nginx

pvsw1 August 28, 2011 05:48PM

Re: Problem with updated nginx

Maxim Dounin August 28, 2011 08:46PM

Re: Problem with updated nginx

pvsw1 September 07, 2011 04:56PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 157
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready