Re[3]: GET-запрос в параметры http_image_filter_module

Igor V. Fatkulin ingvar на westsib.ru
Пт Дек 11 08:02:07 MSK 2009


>>> >> На сайте одна и та же картинка может отображаться в нескольких
>>> >> размерах, генерить несколько копий не хочется, хочется перевалить это
>>> >> на nginx.
>>> >> 
>>> >> Подскажите, плз, есть ли возможность скормить переменные GET-запроса
>>> >> или по регулярному выражению задать локейшн, чтобы происходил ресайз
>>> >> картинок модулем http_image_filter_module?
>>> >> 
>>> >> Сейчас в конфиге присутствует вот такой блок.
>>> >> 
>>> >>         location ~* ^.+.(jpg|jpeg|gif|swf|flv|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|html|htm)$ {
>>> >>             root   /data/web/site.ru/docroot;
>>> >>         }
>>> >> 
>>> >> Желаемое решение - чтобы вставленное через
>>> >> <img src="/image/picture.jpg?size_150"> обрабатывалось в
>>> >> соответствующем локейшене и ресайзило картинку пропорционально по
>>> >> горизонтали до 150рх.
>>> >> 
>>> >> Заранее благодарен,
>>> >> с уважением,
>>> >> Игорь
>>> >> 
>>> >> ЗЫ: подозреваю, что решение тупо, просто решить надо быстро, а времени
>>> >> на тесты нет(
>>> 
>>> IS> Лучше так:
>>> 
>>> IS>    location ~ ^/size/(150|200)/(.+)$ {
>>> IS>        alias          /data/web/site.ru/docroot/$2;
>>> IS>        image_filter   resize  $1 -;
>>> IS>    }
>>> 
>>> Как при этом должна выглядеть ссылка на картинку, пример?
>>> Есть ли вариант заставить ресайзить лежащие где попало картинки?
>>> Например, чтобы в одном локейшене обрабатывались картинки и из
>>> /image/1243.jpg и из /news/photo/355.jpg
>>> ?

IS>> /size/150/image/1243.jpg
IS>> /size/150/news/photo/355.jpg

В запоздалую догонку - есть вариант настройки кеширования, чтобы
ресайз делался только если картинка поменялась, а если нет, то бралось
бы уже пережатое кешированное?




Подробная информация о списке рассылки nginx-ru