Dina ampir sagala aplikasi wéb anu ngagunakeun gambar, aya anu peryogi pikeun nyieun salinan leutik gambar ieu, sarta mindeng aya sababaraha format pikeun gambar tambahan.
Nambahkeun diménsi anyar kana aplikasi anu tos aya ogé nyababkeun nyeri sirah. Ku kituna tugas:
tugas
Hayu urang nunjukkeun daptar sarat:
Ngahasilkeun gambar tambahan tina format naon waé dina laleur tanpa ngenalkeun fungsionalitas tambahan kana aplikasi iraha waé salami aya aplikasi;
Gambar tambahan teu perlu dihasilkeun dina unggal pamundut;
Nonaktipkeun kamampuan pikeun ngahasilkeun gambar tambahan tina format anu henteu ditangtukeun.
Kuring bakal ngajelaskeun titik panungtungan, sabab rada contradicts titik kahiji. Upami urang ngadamel generasi gambar naon waé kabuka, teras aya kamungkinan serangan dina situs ku ngahasilkeun sajumlah ageung pamundut pikeun ngarobih ukuran gambar kana jumlah format anu henteu terbatas, janten kerentanan ieu kedah ditutup.
konfigurasi instalasi nginx
Pikeun ngajawab sarat di luhur urang peryogi set handap modul nginx:
Modul ngx_http_image_filter_module и ngx_http_secure_link_module teu dipasang sacara standar, ku kituna maranéhanana kudu dieusian dina tahap konfigurasi instalasi nginx:
Urang tambahkeun nu anyar kana konfigurasi host urang lokasi sareng parameter cache umum:
...
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;
}
Sanajan kuring ogé bakal nyarankeun ngitung ukuran titingali.
Rakean
Nalika ngahapus gambar asli, sawangan, sacara alami, moal dipupus tina cache dugi ka cache teu sah, sareng dina kasus urang, sawangan tiasa aya sadinten saatos ngahapus, tapi ieu mangrupikeun waktos maksimal.