ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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



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

2008/5/27 Alexey V. Karagodov <kav@xxxxxxxxxxxxxx>:

ситуация:

       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 *; ...





 




Copyright © Lexa Software, 1996-2009.