Welcome! Log In Create A New Profile

Advanced

Re: server_name and listen behaviour

February 12, 2013 02:34PM
On Feb 12, 2013, at 23:14 , Ruslan Ermilov wrote:

> On Tue, Feb 12, 2013 at 09:10:17PM +0400, ivan babrou wrote:
>> Hi, I have a question. It's better to describe with example
>> I point one.local and two.local to 127.0.0.1 and create following servers
>> in config for nginx:
>> server {
>> listen 80;
>> server_name one.local;
>> location / {
>> return 404;
>> }
>> }
>> server {
>> listen two.local:80;
>> server_name two.local;
>> location / {
>> return 403;
>> }
>> }
>> If I request one.local then 403 is returned. If i change listen for
>> one.local to one.local:80 then 404 correctly returned, but only after
>> restart, reload doesn't help (that's probably bug too).
>> I expect to get 404 if i request one.local even if I listen on all
>> addresses. Am I right?
>
> 127.0.0.1:80 and *:80 are two different socket addresses,
> and when you connect to 127.0.0.1:80, the first one will
> be used (two.local in your case). This is not specific
> to nginx, it's how sockets work.
>
> nginx by default optimizes such a config by creating only
> one listening socket [1], and pessimizes by using getsockaddr()
> to differentiate between multiple sockaddrs. This optimization
> can be turned off by using "bind" parameter (or some other
> parameters, see [1] for details). Nevertheless, 127.0.0.1:80
> and *:80 are still two different addresses, and 127.0.0.1:80
> is more specific than *:80.
>
> As to "reload not working", I cannot reproduce this:
>
> (in my config I always return 200 with "$server_name")
>
> $ echo 'GET http://one:8000/' | nc 127.0.0.1 8000
> two.local
>
> # here config was changed to listen on 127.0.0.1:80
> # instead of *:80 for one.local
>
> # reload (kill -HUP nginx master process)
>
> $ kill -HUP 33122
> $ echo 'GET http://one:8000/' | nc 127.0.0.1 8000
> one.local
>
> [1] http://nginx.org/r/listen

I believe on Linux you cannot use

listen *:80 bind;
listen 127.0.0.1:80 bind;


--
Igor Sysoev
http://nginx.com/support.html

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

server_name and listen behaviour

ivan babrou 957 February 12, 2013 12:12PM

Re: server_name and listen behaviour

Igor Sysoev 720 February 12, 2013 02:08PM

Re: server_name and listen behaviour

ivan babrou 482 February 12, 2013 11:52PM

Re: server_name and listen behaviour

Igor Sysoev 720 February 12, 2013 11:58PM

Re: server_name and listen behaviour

ivan babrou 559 February 13, 2013 12:08AM

Re: server_name and listen behaviour

Igor Sysoev 728 February 13, 2013 12:20AM

Re: server_name and listen behaviour

Ruslan Ermilov 435 February 12, 2013 02:16PM

Re: server_name and listen behaviour

Igor Sysoev 726 February 12, 2013 02:34PM

Re: server_name and listen behaviour

ivan babrou 487 February 12, 2013 11:58PM

Re: server_name and listen behaviour

Ruslan Ermilov 611 February 13, 2013 03:20AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 195
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready