RE: Статика и rewrite

Вячеслав (СТYDИЯ АРТ-DИЗАЙН) first at dizain.org
Sun Mar 15 19:33:14 MSK 2009


В результате получилась следующая конфигурация:

    server {
        listen 80; 
        server_name img.site.ru www.img.site.ru;

        expires max;
        add_header Cache-Control public;
        access_log off;

        root /var/www/vhosts/site.ru/subdomains/img/httpdocs;
        
        location ~* ^/i/rating/(.+)\.png$ {
             error_page 404 = http://www.site.ru/img.php?rating=$1;
        }
        
        location ~* \.(bmp|gif|jpg|jpeg|ico|png|swf|tiff)$ {
        }     
    }

При отсутствующем файле, скрипту не передается параметр $1, т.е.
http://www.site.ru/img.php?rating=

Я так понимаю что $1 работает в error_page только начиная с 0.7.41?
Использую сейчас nginx/0.6.35, стоит ли перейти на последнюю версию?
Большое спасибо за ответы!

--
С уважением, Вячеслав
 

-----Original Message-----
From: owner-nginx-ru at sysoev.ru [mailto:owner-nginx-ru at sysoev.ru] On
Behalf Of Igor Sysoev
Sent: Sunday, March 15, 2009 6:09 PM
To: nginx-ru at sysoev.ru
Subject: Re: Статика и rewrite

On Sun, Mar 15, 2009 at 05:54:55PM +0300, Igor Sysoev wrote:

> On Sun, Mar 15, 2009 at 04:01:31PM +0300, Вячеслав (СТYDИЯ АРТ-DИЗАЙН)
wrote:
> 
> > Добрый день, сообщество nginx-ru!
> > Я новичек, установил nginx как фронт-енд к apache2.
> >  
> > Сделал отдельный домен img.site.ru под раздачу картинок через nginx.
> > Дополнительно nginx должен проверять если по адресу
> > img.site.ru/i/rating/*.png файл, то он отдает его пользователю, если
нет
> > отправляет на формирование скрипту http
> > <http://www.site.ru/img.php?rating=*>
://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;
> >             }
> >         }
> >     }
> >  
> > Верна ли конфигурация? Я почему-то в ней сомневаюсь.
> 
> Для 0.7.41:
> 
>         root /var/www/vhosts/site.ru/subdomains/img/httpdocs;
> 
>         location ~* ^/i/rating/(.+)\.png$ {
>              error_page       /img.php?rating=$1;

-              error_page       /img.php?rating=$1;
+              error_page 404 = /img.php?rating=$1;

>         }
> 
>         location ~* \.(bmp|gif|jpg|jpeg|ico|png|swf|tiff)$ {
>         }
> 
>         location ~* \.php$ {
>              proxy_pass  ...;
>         }


-- 
Игорь Сысоев
http://sysoev.ru


More information about the nginx-ru mailing list