server_name "";
Igor Sysoev
igor at sysoev.ru
Sat Dec 19 22:48:53 MSK 2009
On Sat, Dec 19, 2009 at 02:42:53PM -0500, Sean Allen wrote:
> 2009/12/19 Igor Sysoev <igor at sysoev.ru>:
> > 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;
> > }
> >
>
> So if we have say 12 eth interfaces and I want to have a default
> server for each I need to do:
>
> server
> {
> listen 192.168.1.125 default;
> server_name _;
> return 444;
> }
>
> for each of them?
>
> ( except of course the ip address would change... )
Yes, if you have, for example, 192.168.1.125 and 192.168.1.130,
and you do not want to receive requests for m.example.com on 192.168.1.130.
--
Igor Sysoev
http://sysoev.ru/en/
More information about the nginx
mailing list