Использование get параметров запроса $arg_name в try_files

Taras Murashko taras.murashko at gmail.com
Wed Apr 22 20:37:38 MSD 2009


Здравствуйте,

Решил обратится к сообществу за советом.
При переходе с lighttpd хочу попутно реализовать отдачу пользовательских
картинок через nginx(0.7.50).
Урл картинок: /img/$img_id/$file_name?width=$width&heigth=$height
Путь к файлу:
/opt/images/$img_id_$file_name/T_w$width_h$height_fORIGINAL_$img_id_$file_name
Если в запросе не указаны width и heigth
то путь к файлу: /opt/images/$img_id_$file_name/$img_id_$file_name

Судя по документации параметры запроса хранятся в перемменых $arg_*name*
Я попробовал следующий конфиг:
        location ~* ^/img/([0-9]+)/(.*)?(.*)$ {
             root /opt/images;
             try_files /$1_$2/T_w$arg_width_h$arg_height_fORIGINAL_$1_$2
/$1_$2/$1_$2  @backend;
        }

        location / {
        proxy_set_header  Host     $host;
            proxy_pass http://127.0.0.1:5000;
        }

        location @backend {
        proxy_set_header  Host     $host;
            proxy_pass http://127.0.0.1:5000;
        }
Но если в запросе присутствуют параметры width и heigth к примеру
/img/1/1.jpg?width=100&height=100
то nginx не отдает файл с заданными размерами, хотя если вместо
try_files /$1_$2/T_w$arg_width_h$arg_height_fORIGINAL_$1_$2  /$1_$2/$1_$2
@backend;
прописать явно
try_files /$1_$2/T_w100_h100_fORIGINAL_$1_$2   /$1_$2/$1_$2  @backend;
то отдается  файл с заданными размерами 100 на 100.

В чем может быть проблема ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20090422/8610a09d/attachment.html>


More information about the nginx-ru mailing list