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
|