Şəkillərdən istifadə edən demək olar ki, hər hansı bir veb proqramda bu şəkillərin kiçik nüsxələrini yaratmağa ehtiyac var və çox vaxt əlavə şəkillər üçün bir neçə format var.
Mövcud tətbiqə yeni ölçülər əlavə etmək də bəzi baş ağrılarına səbəb olur. Beləliklə, vəzifə:
Tapşırıq
Tələblərin siyahısını qeyd edək:
Tətbiqin mövcud olduğu zaman istənilən vaxt tətbiqə əlavə funksionallıq daxil etmədən istənilən formatda əlavə şəkillər yaradın;
Hər sorğuda əlavə şəkillərin yaradılmasına ehtiyac yoxdur;
Müəyyən edilməmiş formatların əlavə şəkillərini yaratmaq imkanını söndürün.
Son nöqtəni izah edəcəyəm, çünki birinci bəndlə bir az ziddiyyət təşkil edir. Əgər hər hansı bir təsvirin nəslini açıq etsək, o zaman təsvirin ölçüsünü sonsuz sayda formatda dəyişmək üçün çoxlu sayda sorğu yaradaraq sayta hücum ehtimalı var, ona görə də bu boşluq bağlanmalıdır.
nginx quraşdırma konfiqurasiyası
Yuxarıdakı tələbləri həll etmək üçün bizə aşağıdakı nginx modulları dəsti lazımdır:
Module ngx_http_image_filter_modulu и ngx_http_secure_link_modulu default olaraq quraşdırılmır, ona görə də quraşdırma konfiqurasiya mərhələsində göstərilməlidir nginx:
Host konfiqurasiyamıza yenisini əlavə edirik yeri və ümumi keş parametrləri:
...
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;
}
Baxmayaraq ki, mən də ölçüləri hesablamağı məsləhət görərdim preview.
Dırmıq
Orijinal görüntünü silərkən, önizləmələr, təbii olaraq, keş silinənə qədər keşdən silinməyəcək və bizim vəziyyətimizdə, önizləmələr silindikdən bir gün sonra mövcud ola bilər, lakin bu, maksimum vaxtdır.