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