ПРОЕКТЫ 


  АРХИВ 


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 *; # по жалуйста :)



default я указал, чтобы использовать httpready фильтр


On 28.05.2008, at 2:53, TDz wrote:

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



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.