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

Alexey V. Karagodov kav at karagodov.name
Wed May 28 03:20:05 MSD 2008


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






More information about the nginx-ru mailing list