./images/26946324088_5b3f0b1464_o.png
Nginx Image Resizer is a Docker-based tool that uses Nginx and ImageMagick to dynamically resize images. When you run this Docker image, you can specify the size of the image through URL parameters, and Nginx Image Resizer will return the resized image. This tool is particularly useful for websites and applications that need to dynamically adjust image sizes.
docker build -t ghcr.io/appleboy/nginx-image-resizer .
docker run --restart always \
-p 8002:80 \
-e NGINX_HOST=localhost \
-e IMAGE_HOST="http://localhost:9000" \
ghcr.io/appleboy/nginx-image-resizer
Parameter | required | default value |
---|---|---|
NGINX_HOST | true | |
IMAGE_HOST | true | |
JPG_QUALITY | false | 95 |
EXPIRE_TIME | false | 7d |
MEMORY_SIZE | false | 20m |
CACHE_NAME | false | cache_zone |
CACHE_SIZE | false | 40m |
INACTIVE_TIME | false | 30d |
Start minio and nginx-image-resizer using docker-compose.yml
docker-compose up -d
set minio environment as following
MINIO_ROOT_USER: YOUR_MINIO_ROOT_USER MINIO_ROOT_PASSWORD: YOUR_MINIO_ROOT_PASSWORD
set bucket as public permission.
mc config host add minio http://localhost:9000 MINIO_ACCESS_KEY MINIO_SECRET_KEY
mc anonymous set public minio/test
open browser as following
# format 1: http://localhost:8002/resize_image_width/bucket_name/image_name http://localhost:8002/300/test/test.png # format 2: http://localhost:8002/${image_width}x${image_height}/bucket_name/image_name http://localhost:8002/300x200/test/test.png
without nginx proxy cache:
echo "GET http://localhost:8002/310/test/26946324088_5b3f0b1464_o.png" | vegeta attack -rate=100 -connections=1 -duration=1s | tee results.bin | vegeta report Requests [total, rate] 100, 101.01 Duration [total, attack, wait] 8.258454731s, 989.999ms, 7.268455731s Latencies [mean, 50, 95, 99, max] 3.937031678s, 4.079690985s, 6.958110121s, 7.205018428s, 7.268455731s Bytes In [total, mean] 4455500, 44555.00 Bytes Out [total, mean] 0, 0.00 Success [ratio] 100.00% Status Codes [code:count] 200:100 Error Set:
with nginx proxy cache:
echo "GET http://localhost:8002/310/test/26946324088_5b3f0b1464_o.png" | vegeta attack -rate=100 -connections=1 -duration=1s | tee results.bin | vegeta report Requests [total, rate] 100, 101.01 Duration [total, attack, wait] 993.312255ms, 989.998ms, 3.314255ms Latencies [mean, 50, 95, 99, max] 3.717219ms, 3.05486ms, 8.891027ms, 12.488937ms, 12.520428ms Bytes In [total, mean] 4455500, 44555.00 Bytes Out [total, mean] 0, 0.00 Success [ratio] 100.00% Status Codes [code:count] 200:100 Error Set: