server_name "";

Igor Sysoev igor at sysoev.ru
Sat Dec 19 22:34:05 MSK 2009


On Sat, Dec 19, 2009 at 02:28:06PM -0500, Sean Allen wrote:

> 2009/12/19 Igor Sysoev <igor at sysoev.ru>:
> > On Sat, Dec 19, 2009 at 02:15:55PM -0500, Sean Allen wrote:
> >
> >> 2009/12/19 Igor Sysoev <igor at sysoev.ru>:
> >> > On Sat, Dec 19, 2009 at 10:59:39AM -0500, Sean Allen wrote:
> >> >
> >> >> On Fri, Dec 18, 2009 at 8:38 PM, merlin corey <merlincorey at dc949.org> wrote:
> >> >> > On Fri, Dec 18, 2009 at 3:04 PM, Sean Allen <sean at monkeysnatchbanana.com> wrote:
> >> >> >> On Fri, Dec 18, 2009 at 5:51 PM, Peter Leonov <gojpeg at gmail.com> wrote:
> >> >> >>> On 19.12.2009, at 1:14, Sean Allen wrote:
> >> >> >>>
> >> >> >>>> we are running 0.7.64
> >> >> >>>>
> >> >> >>>> have this as a server:
> >> >> >>>>
> >> >> >>>> server
> >> >> >>>> {
> >> >> >>>>     server_name "";
> >> >> >>>>
> >> >> >>>>     location /
> >> >> >>>>     {
> >> >> >>>>         return 404;
> >> >> >>>>     }
> >> >> >>>> }
> >> >> >>>>
> >> >> >>>> when we try to startup we get:
> >> >> >>>>
> >> >> >>>>  [emerg]: the first server name must not be empty in
> >> >> >>>> /ah/conf/nginx/default_server.conf:4
> >> >> >>>>
> >> >> >>>> wiki says:
> >> >> >>>>
> >> >> >>>> Since nginx 0.7.12, an empty server name is supported, to catch the
> >> >> >>>> requests without "Host" header:
> >> >> >>>>
> >> >> >>>> server {
> >> >> >>>>  server_name "";
> >> >> >>>> }
> >> >> >>>
> >> >> >>> We use the underscore + listen default.
> >> >> >>>
> >> >> >>> server
> >> >> >>> {
> >> >> >>>        server_name _;
> >> >> >>>        listen 80 default;
> >> >> >>>        location / { return 404; }
> >> >> >>> }
> >> >> >>>
> >> >> >>
> >> >> >> That works except, it is getting blocked by another and I'm not sure why.
> >> >> >> I'm doing this on a local network right now and m.example.com is 192.16.8.1.125
> >> >> >> if m.example.com is setup then this doesn't get used.
> >> >> >>
> >> >> >> m.example.com has:
> >> >> >>
> >> >> >> server
> >> >> >> {
> >> >> >>    listen m.example.com;
> >> >> >>    server_name m.example.com;
> >> >> >> }
> >> >> >>
> >> >> >> So from the wiki,
> >> >> >> if I do a request not to m.example.com but 192.168.1.125
> >> >> >> shouldnt the listen 80 default server block be the one that handles
> >> >> >> the response?
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> nginx mailing list
> >> >> >> nginx at nginx.org
> >> >> >> http://nginx.org/mailman/listinfo/nginx
> >> >> >>
> >> >> >
> >> >> > FYI Igor's latest documents at:
> >> >> > http://nginx.org/en/docs/http/request_processing.html suggest the
> >> >> > following configuration:
> >> >> >
> >> >> > server {
> >> >> >    listen       80  default_server;
> >> >> >    server_name  _;
> >> >> >    return       444;
> >> >> > }
> >> >> >
> >> >> > You will note that now we use default_server, the server_name _, and
> >> >> > no need for a location to hold the return code.
> >> >>
> >> >> I'm running 0.7.64 and after switching 'default_server' to default per
> >> >> the wiki doc you referenced,
> >> >> this still doesnt work. It doesnt respond as the default server
> >> >>
> >> >> i have
> >> >>
> >> >> m.example.com is still answering when you
> >> >>
> >> >> wget http://192.168.1.125/
> >> >
> >> > Have you looked this:
> >> > http://nginx.org/en/docs/http/server_names.html#miscellaneous_names
> >> > http://nginx.org/en/docs/http/request_processing.html
> >> >
> >>
> >> Yes.
> >>
> >> Question as this isnt clear to me.
> >>
> >> If I have a server
> >>
> >> server
> >> {
> >> listen m.example.com;
> >> server_name m.example.com;
> >> }
> >>
> >> and m.example.com is 192.168.1.125
> >>
> >> and i also have
> >>
> >> server
> >> {
> >> listen 80
> >> server_name _;
> >> }
> >>
> >> which one should handle a request w/o a hostname to 192.168.1.125?
> >
> > It will be handled by default server.
> >
> 
> this one?
> 
> server
> {
>     listen       80 default;
>     server_name  _;
>     return       444;
> }
> 
> because that isn't what is happening for me and i have a really basic
> setup right now
> as we are starting over with a new system and i'm building up from simple stuff.
> 
> the default server for me answers on all interfaces except
> 192.168.1.125 for which
> 
> wget 192.168.1.125
> 
> is being handled by m.example.com

Here you have two default servers:

 server {
     listen m.example.com; # default for 192.168.1.125:80

 server {
     listen 80 default; # default for *:80

You need to add

 server {
     listen m.example.com default;
     server_name  _;
     return       444;
 }


-- 
Igor Sysoev
http://sysoev.ru/en/



More information about the nginx mailing list