Re: верните server_name *; # пожалуйста :)

TDz tdz at modestus.org
Wed May 28 02:53:58 MSD 2008


Разве server_name * не будет коллизией с listen 80 default?
У нас это реализовано именно так - перечисляются все виртуальные хосты а всё
что не совпало идёт на vhost где listen 80 default;
Альтернативно мне кажется можно хост который должен быть * разместить после
всех вхостов, тогда он будет обрабатываться при отсутствии других совпадений

2008/5/27 Alexey V. Karagodov <kav at karagodov.name>:

>
> ситуация:
>
>        server  {
>                listen                          80 default
> accept_filter=httpready;
>                include                         include/rewrite;
>                include                         include/location_error;
>                set                             $_document_root
> /srv/www/vhosts/service/core/;
>                root                            $_document_root;
>
>                server_name
>                                        #список проксируемых виртуальных
> хостов
>                                        www.somesite.ru
>                                        www.somesite2.ru
>                                        www.somesite3.ru
>                                        www.company.ru
>                ;
>
>                location                        / {
>                        proxy_set_header                Host
>            $host;
>                        proxy_set_header                X-Real-IP
>             $remote_addr;
>                        proxy_set_header                X-Forwarded-For
>             $proxy_add_x_forwarded_for;
>                                proxy_set_header                X-Real-URI
>                    $request_uri;
>                        proxy_set_header
>  X-Real-Request-Scheme           $scheme;
>                        proxy_redirect                  false;
>                        proxy_pass                      http://http-cluster
> $request_uri;
>                }
>        }
>        server  {
>                listen                          80;
>                server_name
>                                                        secure.company.ru
>                                                        secure2.company.ru
>                ;
>                rewrite                         ^(.*)
>     https://$host$uri$is_args$args  permanent;
>        }
>        server  {
>                listen                          80;
>                server_name             .somesite.ru;
>                rewrite                         ^(.*)
> http://www.somesite.ru$1        permanent;
>        }
>        server  {
>                listen                          80;
>                server_name             .somesite2.ru;
>                rewrite                         ^(.*)
> http://www.somesite2.ru$1       permanent;
>        }
>        server  {
>                listen                          80;
>                server_name             .somesite3.ru;
>                rewrite                         ^(.*)
> http://www.somesite3.ru$1       permanent;
>        }
>        server  {
>                listen                          80;
>                server_name             *;
>                rewrite                         ^(.*)
> http://www.company.ru$1         permanent;
>        }
>
>
> на server_name *; естественно выдаёт ошибку в конфиге
> единственный work-around вот такой:
>
>                server_name
>                                                127.0.0.1
>                                                192.168.4.1
>                                                192.168.4.2
>                                                10.20.30.40
>                                                10.20.30.41
>                                                ~^(.*)$
>                ;
>
> т.е. перечисляю все ИП адреса сервера и регекспом делаю аналог *
>
> всем этим бредом, который я называю конфигом, я хочу добиться следующего:
> при обращении к несуществующему виртуальному хосту следует рерайт на сайт
> компании
> при обращении к сайтам клиентов, следует рерайт на красивое имя www. и тд
> (если это нужно)
> виртуальные хосты в отдельном конфиге
>
> вот наверно единственное, для чего нужно server_name *; ...
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080528/065f4dca/attachment.html>


More information about the nginx-ru mailing list