Сүрөттөрдү колдонгон дээрлик бардык веб-тиркемелерде бул сүрөттөрдүн кичинекей көчүрмөлөрүн түзүү зарылчылыгы бар жана көбүнчө кошумча сүрөттөр үчүн бир нече форматтар бар.
Учурдагы колдонмого жаңы өлчөмдөрдү кошуу да кээ бир баш ооруну жаратат. Демек, милдет:
маселе
Келгиле, талаптардын тизмесин белгилейли:
Колдонмого кошумча функцияларды киргизбестен, каалаган форматтагы кошумча сүрөттөрдү тиркеме иштеп турган убакта пайда кылуу;
Ар бир суроо боюнча кошумча сүрөттөрдү түзүүнүн кереги жок;
Белгисиз форматтардын кошумча сүрөттөрүн түзүү мүмкүнчүлүгүн өчүрүңүз.
Мен акыркы пунктту түшүндүрөм, анткени ал биринчи пунктка бир аз карама-каршы келет. Эгерде биз кандайдыр бир сүрөттөрдүн генерациясын ачык кылсак, анда сүрөттүн өлчөмүн чексиз форматтарга өзгөртүү үчүн көп сандагы суроо-талаптарды жаратып, сайтка чабуул жасоо мүмкүнчүлүгү бар, ошондуктан бул кемчиликти жабуу керек.
nginx орнотуу конфигурациясы
Жогорудагы талаптарды чечүү үчүн бизге nginx модулдарынын төмөнкү топтому керек:
модулдар ngx_http_image_filter_module и ngx_http_secure_link_module демейки боюнча орнотулган эмес, ошондуктан алар орнотуу конфигурациясынын этабында көрсөтүлүшү керек жөргөмүш:
Биз хост конфигурациябызга жаңысын кошобуз орду жана жалпы кэш параметрлери:
...
proxy_cache_path /www/myprojects/cache levels=1:2 keys_zone=image-preview:10m;
...
server {
...
location ~ ^/preview/([cir])/(.+) {
# Тип операции
set $oper $1;
# Параметры изображения и путь к файлу
set $remn $2;
# Проксируем на отдельный хост
proxy_pass http://myproject.ru:81/$oper/$remn;
proxy_intercept_errors on;
error_page 404 = /preview/404;
# Кеширование
proxy_cache image-preview;
proxy_cache_key "$host$document_uri";
# 200 ответы кешируем на 1 день
proxy_cache_valid 200 1d;
# остальные ответы кешируем на 1 минуту
proxy_cache_valid any 1m;
}
Мен да өлчөмдөрүн эсептөөнү сунуш кылат элем да алдын ала кароо.
Рейк
Түпнуска сүрөттү жок кылганда, алдын ала көрүү, албетте, кэш жараксыз болгонго чейин кэштен өчүрүлбөйт, жана биздин учурда, алдын ала көрүү өчүрүлгөндөн кийин бир күн болушу мүмкүн, бирок бул максималдуу убакыт.