Re: Nginx и виртуальные хосты

Denis F. Latypoff denis at gostats.ru
Thu Jan 17 09:38:38 MSK 2008


Hello Eugene,

Thursday, January 17, 2008, 12:06:47 PM, you wrote:

> Hi all.

> У меня есть Nginx (front) и Apache (backend).
> На Apache крутятся вирт. хосты, файлы которых хранятся здесь
> /home/httpd/site1.domain.com
> /home/httpd/site2.domain.com
> и т. д.
> Статику (картинки, стили и прочее) хочу отдавать через nginx - все это хранится
>         /home/httpd/site1.domain.com/statics
>         /home/httpd/site2.domain.com/statics

> Статика отдается примерно так:

>          if ($host ~* ^(www\.)?(.*)(\.domain\.com)$)
>          {
>              set $myhost $2$3;
>          }

>          location ~* statics\/.*\.(png|jpg|jpeg|gif|swf)
>          {
>              if ( -d /home/httpd/$myhost/ )
>              {
>                  root /home/httpd/$myhost/;
>              }
>          }

>          location /
>          {
>              proxy_pass http://127.0.0.1:8008;
>          }

server
{
    listen ip:port;
    server_name domain.com;

    location ~* ^/statics\/.*\.(png|jpg|jpeg|gif|swf)$
    {
        root /home/httpd/domain.com/statics;
    }

    location /
    {
        proxy_pass http://127.0.0.1:8008;
    }
}

server
{
    listen ip:port;
    server_name site1.domain.com;

    location ~* ^/statics\/.*\.(png|jpg|jpeg|gif|swf)$
    {
        root /home/httpd/site1.domain.com/statics;
    }

    location /
    {
        proxy_pass http://127.0.0.1:8008;
    }
}

server
{
    listen ip:port;
    server_name site2.domain.com;

    location ~* ^/statics\/.*\.(png|jpg|jpeg|gif|swf)$
    {
        root /home/httpd/site2.domain.com/statics;
    }

    location /
    {
        proxy_pass http://127.0.0.1:8008;
    }
}

> Так оно работает хорошо. Пока не привязать в вирт. хосту домен 2 уровня.
> Единст. выход я так понимаю - статику тоже проксировать на Apache
> (просто не знаю как определить соответствие домена 3 уровня и домена 2 уровня, а значит и папку вирт. хоста)
> Но при этом для таких хостов все равно сработавает location ~* statics. Я так понимаю для него root = html.
> Как сделать так, чтобы для таких доменов данный location не срабатывал?

> ---------------------
> Спасибо,
> с уважением Евгений Фоминых.



-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx-ru mailing list