ПРОЕКТЫ 


  АРХИВ 


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



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 mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.