Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
nginx:resize-image [2020/02/21 06:44] admin |
nginx:resize-image [2020/02/21 06:56] admin |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Динамический ресайз изображений ====== | ====== Динамический ресайз изображений ====== | ||
+ | |||
+ | Данный способ позволит делать динамический ресайз изображений с кешированием результатов на диске. | ||
+ | |||
+ | ===== Подключение модуля ngx_http_image_filter_module ===== | ||
<file ini / | <file ini / | ||
include / | include / | ||
</ | </ | ||
+ | |||
+ | ===== Создание сервера для изменения размеров изображений на порту 8082 ===== | ||
+ | |||
+ | <file ini / | ||
+ | # Сервер для изменения размеров изображений | ||
+ | # @link https:// | ||
+ | server { | ||
+ | listen | ||
+ | |||
+ | access_log | ||
+ | error_log | ||
+ | |||
+ | # Ошибки отправляем на отдельный location | ||
+ | error_page | ||
+ | |||
+ | # информация | ||
+ | location ~ ^/i/(.+) { | ||
+ | # грязный хак от Игоря Сысоева | ||
+ | # try_files — чувствителен к пробелам и русским символам, | ||
+ | alias / | ||
+ | try_files | ||
+ | |||
+ | # Проверяем правильность ссылки и md5 | ||
+ | |||
+ | # Используем соответсвующий фильтр | ||
+ | image_filter | ||
+ | } | ||
+ | |||
+ | # crop | ||
+ | location ~ ^/ | ||
+ | set | ||
+ | set | ||
+ | |||
+ | alias / | ||
+ | try_files | ||
+ | |||
+ | image_filter | ||
+ | } | ||
+ | |||
+ | # resize | ||
+ | location ~ ^/ | ||
+ | set | ||
+ | set | ||
+ | |||
+ | alias / | ||
+ | try_files | ||
+ | |||
+ | image_filter | ||
+ | } | ||
+ | |||
+ | location @404 { return 404; } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | ===== Создание location, который будет обслуживать ресайз изображений ===== | ||
<file ini / | <file ini / | ||
Строка 25: | Строка 86: | ||
</ | </ | ||
- | <file ini / | + | ===== Кеширование измененных изображений ===== |
+ | |||
+ | <file ini / | ||
+ | # Кеш для изображений | ||
+ | proxy_cache_path / | ||
+ | levels=1: | ||
+ | keys_zone=cache_img: | ||
+ | max_size=1g | ||
+ | inactive=7d | ||
+ | use_temp_path=off; | ||
+ | </ | ||
+ | |||
+ | ===== Настройка сайта ===== | ||
+ | |||
+ | <file ini / | ||
+ | location = /empty.gif { | ||
+ | empty_gif; | ||
+ | } | ||
location ~* ^.+\.(jpg|jpeg|gif|png|css|js|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ { | location ~* ^.+\.(jpg|jpeg|gif|png|css|js|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ { | ||
root / | root / | ||
Строка 34: | Строка 113: | ||
} | } | ||
</ | </ | ||
+ | |||
+ |