Re: Суб домены на разных server..
Maxim Dounin
mdounin at mdounin.ru
Wed Mar 5 16:18:38 UTC 2014
Hello!
On Wed, Mar 05, 2014 at 10:37:29AM -0500, den68 wrote:
> Помогите с решением казалось-бы тривиальной задачи.
> Требуется чтоб домены типа *.abc.ru уходили на первый сервер, а домены
> home.*.abc.ru на второй, причем на втором должен быть proxy_pass, то есть
> редирект если я правильно понимаю не очень подходит, туда данные GET'ом
> передаются..
>
> 1.
> server {
> server_name
> abc.ru
> *.abc.ru;
> ....
>
> 2.
> server {
> server_name
> home.*.abc.ru; /знаю, так писать в реалии нельзя.. для
> наглядности../
> proxy_pass http://127.0.0.1:998877/;
>
> Пробовал различные варианты с PCRE - результатом не увенчалось:
>
> #~^home.*\.abc\.ru$;
> #server_name "^~home\.(?<domain>.+)$";
> #server_name "~^(home\.)?(?<domain>.+)$";
> #server_name "~^(home\.)?(.+)$";
> #server_name "~^home\.(?P<domain>.*)$";
>
> ..
> ка правильно-то ?
Если в конфиге есть server_name *.abc.ru, то регулярные выражения
к соответствующим именам применяться не будут, см. документацию:
http://nginx.org/r/server_name/ru
Если нужно, чтобы home.*.abc.ru и *.abc.ru обрабатывались в разных
блоках server{}, то надо переписать конфиг как-то так:
server {
server_name ~^home\..+\.abc\.ru$;
...
}
server {
server_name ~.+\.abc\.ru$;
...
}
Обращаю внимание, что порядок следования блоков server{} - важен,
используется первое совпавшее регулярное выражение.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru