server_name "";

Sean Allen sean at monkeysnatchbanana.com
Sat Dec 19 22:28:06 MSK 2009


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



More information about the nginx mailing list