ПРОЕКТЫ 


  АРХИВ 


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[5]: GET-запрос в параметры ht tp_image_filter_module



Спасибо, Кэп) (шутка, не обижайтесь:)

Собственно вопрос связан с чем - насколько я понимаю, кеширование с
помощью proxy_... эффективно работает, когда nginx просто берет уже
готовое из кеша, не проверяя исходник, потому что если исходник
генерится динамически, то проверка будет сводиться к генерации, что
будет сводить на нет эффект от кеширования. А если проверка идет при
простой отдаче с диска, то смысла в этом лично я вижу мало - отдать с
диска из каталога кеша, либо с диска из каталога-источника.

В моей ситуации генерация жпега все-таки более тяжела по сравнению
с простой проверкой на обновление файла, поэтому хотелось бы чтобы при
обращении к локейншу /size/150/path/to/src-image.jpg проверялось не
поменялся ли файл /path/to/src-image.jpg, и если да, то пережать
картинку и сохранить ее в кеше, а если нет, то взять кешированное
ранее пережатое.

VL> ну можно попробовать закешировать ответ в секции локейшена,
VL> описанного для ресайза


VL> 11 декабря 2009 г. 11:02 пользователь Igor V. Fatkulin
VL> <ingvar@xxxxxxxxxx> написал:
>>
>>>>> >> На сайте одна и та же картинка может отображаться в нескольких
>>>>> >> размерах, генерить несколько копий не хочется, хочется перевалить это
>>>>> >> на 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 mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.