ПРОЕКТЫ 


  АРХИВ 


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: Nginx и виртуа льные хос ты


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Nginx и виртуа льные хос ты
  • From: "Alexey V. Karagodov" <karagodov@xxxxxxxxx>
  • Date: Thu, 17 Jan 2008 09:46:51 +0300
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:to:in-reply-to:content-type:mime-version:subject:x-priority:date:references:x-mailer:from; bh=NSWNBEHk3JY7rPbnuVYb6zYSyyOxplSw364YmPiKipU=; b=qmx2dLC5vgcJp1GQIvuDcZYjDAa0K5G67DDDn2vq9lgDzg0Xo4rc2oYbddzZeFTwG1OUhAWaWkZBQ5yxzehnmc8CgKWUxCw3w/KuqFpl5e15+JOmUhhcMO7JiJHt9xX+F5GnGQkXt1l7FKS1riWxixMByzHCI76n6eMMs6CpyUc=
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:to:in-reply-to:content-type:mime-version:subject:x-priority:date:references:x-mailer:from; b=NTk4egHkcLy51ZXEiF/FmjExAwSj+WA5+C50RMUmjDTX+eKBAPNXrApdjDmOsvb/+9dINyy8bbXZtLhC6p+mL6sBjfDIyC/vtb5yYvCmOZNY788daCQNKaWpiySVHLcutBvm4YfCOa0kSSvlI8yBv7hcDCU5vOw0w2GSnRIB6t8=
  • In-reply-to: <1124695149.20080117123838@xxxxxxxxxx>
  • References: <478EF077.2080706@xxxxxxxxx> <1124695149.20080117123838@xxxxxxxxxx>

а если сайтов 50 штук? 

On 17.01.2008, at 9:38, Denis F. Latypoff wrote:

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 *.domain.com;

   location ~* ^/statics\/.*\.(png|jpg|jpeg|gif|swf)$
   {
       root /home/httpd/$host/statics;
   }
#из $host можно вычленить лишнии домены, 4-о уровня например и отбросить их за ненадобностью 
   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@xxxxxxxxxx





 




Copyright © Lexa Software, 1996-2009.