Как изменить размер изображения через nginx

все. подскажите как решить эту загадку. Nginx передает URL-адрес типа https://example.com/thumbs/_default_upload_bucket/236/280/5804.jpeg. Если этого изображения не существует, nginx должен получить исходное изображение и изменить его размер: заменить «thumbs/» и размер «236/280/». URL-адрес будет https://example.com/_default_upload_bucket/5804.jpeg.

Если я правильно понимаю делать это через модуль ngx_http_image_filter_module.

Как это сделать через nginx. Спасибо.

Это может быть отправной точкой: nginx.com/blog/response-images-without-headaches-nginx-plu‌​s и вот еще одна интересная статья: stumbles.id.au/nginx-dynamic-image-resizing-with-caching.htm‌​l

fromthestone 30.05.2019 10:50

я проверю эту статью, спасибо.

James M 30.05.2019 11:43
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
2
258
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

после исследований я создал нужную мне конфигурацию.

location ~* /thumbs/(.*)/(\d+)/(\d+)/(.*)$ {
            set $bucket $1;
            set $width $2;
            set $height $3;
            set $filename $4;
    try_files /$1/$2/$3/$4 @images;
    root /var/www/html/tmp/image-thumbnails;
    expires 2w;
    access_log off;
}


location @images {
            root /var/www/html/assets/;
            rewrite ^.*$ /$bucket/$filename break;
            image_filter_buffer 50M;
            image_filter resize $width $height;
}

Nginx предоставляет модуль image_filter для динамического изменения размера изображения. Эта конфигурация Nginx позволяет выполнять такие запросы, как http://server.com/images/880/dis.jpg — это изображение будет изменено до ширины 880 пикселей и сжато с использованием значения качества 90. Запросы, запрашивающие изображения размером более 10 мегабайт (до изменения размера), будут изменены.

    server {
  listen 80 default_server;
  server_name server.com;

  location ~ "^/images/(?<width>\d+)/(?<image>.+)$" {
    alias /srv/www/images/$image;
    image_filter resize $width -;
    image_filter_jpeg_quality 90;
    image_filter_buffer 10M;
  }
}

Другие вопросы по теме