Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Последняя версия Следующая версия справа и слева
nginx:resize-image [2020/02/21 06:44]
admin
nginx:resize-image [2020/02/21 06:48]
admin
Строка 3: Строка 3:
 <file ini /etc/nginx/nginx.conf> <file ini /etc/nginx/nginx.conf>
 include /usr/share/nginx/modules/mod-http-image-filter.conf; include /usr/share/nginx/modules/mod-http-image-filter.conf;
 +</file>
 +
 +<file ini /etc/nginx/conf.d/img-resize.conf>
 +# Сервер для изменения размеров изображений
 +# @see https://habr.com/ru/post/77873/
 +server {
 +  listen                          8082;
 +
 +  access_log                      /var/log/nginx/img-resize.access.log combined;
 +  error_log                       /var/log/nginx/img-resize.error.log;
 +
 +  # Ошибки отправляем на отдельный location
 +  error_page                      403 404 415 500 502 503 504 = @404;
 +
 +  # информация
 +  location ~ ^/i/(.+) {
 +      # грязный хак от Игоря Сысоева
 +      # try_files — чувствителен к пробелам и русским символам, поэтому пришлось сделать костыль с alias
 +      alias                       /vhosts/site.ru/www/$1;
 +      try_files                   "" @404;
 +
 +      # Проверяем правильность ссылки и md5
 +
 +      # Используем соответсвующий фильтр
 +      image_filter                size;
 +  }
 +
 +  # crop
 +  location ~ ^/c/(\d+|-)x(\d+|-)/(.+) {
 +      set                         $width  $1;
 +      set                         $height $2;
 +
 +      alias                       /vhosts/site.ru/www/$3;
 +      try_files                   "" @404;
 +
 +      image_filter                crop  $width  $height;
 +  }
 +
 +  # resize
 +  location ~ ^/r/(\d+|-)x(\d+|-)/(.+) {
 +      set                         $width  $1;
 +      set                         $height $2;
 +
 +      alias                       /vhosts/site.ru/www/$3;
 +      try_files                   "" @404;
 +
 +      image_filter                resize  $width  $height;
 +  }
 +
 +  location @404 { return 404; }
 +}
 </file> </file>
  
Строка 25: Строка 76:
 </file> </file>
  
-<file ini /etc/nginx/conf.d/site.ru>+<file ini /etc/nginx/conf.d/caches.conf> 
 +# Кеш для изображений 
 +proxy_cache_path /tmp/nginx-cache_img   # путь 
 +  levels=1:                           # количество уровней 
 +  keys_zone=cache_img:10m               # название:размер зоны, 1Мб ~ 8000 ключей (1 ключ - 1 запрос) 
 +  max_size=1g                           # размер данных кеша, при превышении удаляются наиболее старые 
 +  inactive=7d                           # время хранения запроса на диске с момента последнего обращения, независимо от Cache-Control 
 +  use_temp_path=off;                    # off - используем proxy_cache_path; on - используем proxy_temp_path, указанный в location 
 +</file> 
 + 
 +<file ini /etc/nginx/conf.d/site.ru.conf> 
 +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 /vhosts/site.ru/www;   root /vhosts/site.ru/www;
Строка 34: Строка 99:
 } }
 </file> </file>
 +
 +
Печать/экспорт