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

Alexey V. Karagodov karagodov at gmail.com
Thu Jan 17 09:46:51 MSK 2008


а если сайтов 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 at gostats.ru
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20080117/10970057/attachment.html>


More information about the nginx-ru mailing list