Yn hast elke webapplikaasje dy't ôfbyldings brûkt, is d'r needsaak om lytse kopyen fan dizze ôfbyldings te meitsjen, en faak binne d'r ferskate formaten foar ekstra ôfbyldings.
It tafoegjen fan nije dimensjes oan in besteande applikaasje soarget ek foar wat hoofdpijn. Dêrom de taak:
Objective
Litte wy de list mei easken oanjaan:
Generearje ekstra ôfbyldings fan elk formaat op 'e flecht sûnder ekstra funksjonaliteit yn' e applikaasje yn te fieren op elk momint tidens it bestean fan 'e applikaasje;
Oanfoljende ôfbyldings hoege net op elke oanfraach te generearjen;
Skeakelje de mooglikheid om ekstra ôfbyldings fan net spesifisearre formaten te generearjen.
Ik sil it lêste punt útlizze, om't it it earste punt in bytsje tsjinsprekt. As wy de generaasje fan alle ôfbyldings iepen meitsje, dan is d'r in mooglikheid fan in oanfal op 'e side troch it generearjen fan in grut oantal oanfragen om de ôfbylding te feroarjen yn in ûneinich oantal formaten, sadat dizze kwetsberens sletten wurde moat.
nginx ynstallaasje konfiguraasje
Om de boppesteande easken op te lossen hawwe wy de folgjende set nginx-modules nedich:
Modules ngx_http_image_filter_module и ngx_http_secure_link_module binne net standert ynstalleare, sadat se moatte wurde oantsjutte yn 'e ynstallaasjekonfiguraasjestadium nginx:
Wy foegje in nije ta oan ús hostkonfiguraasje lokaasje en algemiene cache parameters:
...
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;
}
Hoewol't ik soe ek riede berekkenjen de maten preview.
Rake
By it wiskjen fan de orizjinele ôfbylding, sille foarbylden, fansels, net wiske wurde út it cache oant de cache is ûnjildich, en yn ús gefal kinne foarbylden bestean foar in dei nei wiskjen, mar dit is de maksimale tiid.