ПРОЕКТЫ 


  АРХИВ 


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: Статика и rewrite





2009/3/15 Вячеслав (СТYDИЯ АРТ-DИЗАЙН) <first@xxxxxxxxxx>

Добрый день, сообщество nginx-ru!

Я новичек, установил nginx как фронт-енд к apache2.

 

Сделал отдельный домен img.site.ru под раздачу картинок через nginx. Дополнительно nginx должен проверять если по адресу img.site.ru/i/rating/*.png файл, то он отдает его пользователю, если нет отправляет на формирование скрипту http://www.site.ru/img.php?rating=*

 

Конфигурация:

 

    server {

        listen 80;

        server_name img.site.ru www.img.site.ru;

 

        expires max;

        add_header Cache-Control public;

        access_log off;

 

        location ~* ^.+\.(bmp|gif|jpg|jpeg|ico|png|swf|tiff)$ {

            root /var/www/vhosts/site.ru/subdomains/img/httpdocs;

            if (!-f $document_root${uri}) {

                rewrite ^/i/rating/(.*)\.png$ http://www.site.ru/img.php?rating=$1 last;

                break;

            }

        }

    }

 

Верна ли конфигурация? Я почему-то в ней сомневаюсь.

Не используйте if, лучше сделать через error_page, примерно так:

location @back {
   rewrite ^/i/rating/(.*)\.png$ http://www.site.ru/img.php?rating=$1 last;
   proxy_pass http://1.2.3.4;
}

location ~* ^.+\.(bmp|gif|jpg|jpeg|ico|png|swf|tiff)$ {
     ....
     error_page 404 = @back;
}


--
Vladimir Rusinov
http://greenmice.info/


 




Copyright © Lexa Software, 1996-2009.