ПРОЕКТЫ 


  АРХИВ 


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: [Bug] обрезается строка в a lias



On Wed, Jun 02, 2010 at 04:13:37PM +0400, Anton Kuznetsov wrote:

> Похоже на баг.
> 
> ubuntu 10.04
> nginx 0.7.65 (из пакетов)
> 
> кеш картинок в файловой системе, пример
> /path/to/images/12/12345_240x240.png
> запросы, пример
> /images/12345?size=200x200
> 
> ожидаемый результат - отдать нужную картинку
> 
> действительный результат:
> /images/12345 - работает, отдается /path/to/images/12/12345_240x240.png
> /images/12345?size=240x240 - не работает, уходит на бекенд.
> 
> в error логе видно, что удалены последние четыре символа из alias
> /path/to/images/12/12345_240x240
> 
> если поставить в alias еще одну переменную, сохраненную из $arg_foo,
> удаляются 8 байт.
> 
> кусок конфига:
> 
>       location ~ /image/(\d+)(\d\d\d) {
>               types { }
>               default_type image/png;
>               set $size "240x240";
>               if ($arg_size) {
>                       set $size "${arg_size}";
>               }
>               alias "/path/to/images/$1/$1$2_${size}.png";
>               error_page 404 405 502 504 = @fallback;
>       }

Это из-за if. Если число размеров предопределено, то можно так:

     map $arg_size  $size {
         default    240x240;  
         200x200    200x200;  
         ...
     }

     server {

         location ~ /image/(\d+)(\d\d\d) {
             types { }
             default_type image/png;
             alias "/path/to/images/$1/$1$2_${size}.png";
             error_page 404 405 502 504 = @fallback;
         }

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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.