Re: Поддомены

Sergey Shepelev temotor at gmail.com
Mon Aug 31 12:43:58 MSD 2009


2009/8/31 Роман <n.g.i.n.x.e.r at gmail.com>:
> ничего не понял
>
> мне для каждого поддомена нужно задать свой реврайт
> к чему ваша конструкция
>

Моя конструкция автоматически задаёт свой root для любого поддомена.

Чтобы для каждого поддомена задавать свой реврайт, опишите каждый
поддомен в отдельной секции server.

server {
  listen ..
  server_name sub1.host.ru;
  rewrite ^ http://foo.bar/;
}

server {
  listen ..
  server_name sub2.host.ru;
  rewrite ^ http://zar.bar/;
}

Или я не понял чего вы хотите. Объясните задачу без терминов nginx. На
входе есть то-то, на выходе надо иметь то-то.

> может я чего то не понял
> объясните подробнее пожалуйста
>
>
> 31 августа 2009 г. 3:39 пользователь Sergey Shepelev
> (temotor at gmail.com) написал:
>> Извините, предыдущее письмо по ошибке отправил.
>>
>> 2009/8/31 Sergey Shepelev <temotor at gmail.com>:
>>> 2009/8/31 Роман <n.g.i.n.x.e.r at gmail.com>:
>>>> Гдето здесь видел описание работы автоматических поддоменов
>>>> реализовал у себя подобное
>>>> но столкнулся с пробелмой - в поддомене нужно сделать реврайт правила
>>>>
>>>> сечас работает такая схема
>>>>
>>>> server {
>>>>        listen          127.0.0.1:80;
>>>>        server_name     host.ru *.host.ru;
>>>>
>>>>
>>>>        set $subdomain "";
>>>>        if ($host ~* ^([a-z0-9-\.]+)\.host.ru$) {set $subdomain "/sub_$1";}
>>>>        if ($host ~* ^www.host.ru$)             {set $subdomain "";}
>>>> ...
>>>>        location / {
>>>>                root    /home/user/host.ru$subdomain;
>>>>        }
>>>> ...
>>>> }
>>>>
>>>> при такой схеме все что находится в поддомене понимает что находится в
>>>> location /
>>>> и привязаться не к чему как к хосту
>>>> но как тогда написать правило if (!-f $request_filename) { ... } ?
>>>>
>>>
>>> Нельзя писать if (-f $request_filename).
>>>
>>>> или может есть другой вариант?
>>>>
>>>
>>> server {
>>>  listen ..
>>>  server_name www.hosting.ru;
>>>  ...
>>> }
>>>
>>> server {
>>>  listen..
>>>  server_name ~ ^(.*)\.hosting\.ru;
>>
>> Самое главное ж:
>>
>>  root /home/user/hosting.ru/$1;
>>
>>>
>>>  location / {
>>>    try_files $uri @backend;
>>>  }
>>>
>>>  location @backend { здесь проксирование на ваш PHP }
>>> }
>>>
>>
>


More information about the nginx-ru mailing list