配置示例
# 访问原始图片 location /image { root /data; } # 访问缩略图片 location ~* ^/thumbnail/(.*)$ { alias /data/thumbnail; if (!-f $request_filename) { proxy_pass http://127.0.0.1/_thumbnail/$1; break; } proxy_set_header Host $http_host; proxy_store /data/thumbnail/$1; proxy_store_access user:rw group:r all:r; proxy_temp_path /tmp/image; } # 生成缩略图 location /_thumbnail { alias /data/image/; # 指定要缩放的宽、高,"-" 表示等比例缩放 image_filter resize 400 "-"; image_filter_jpeg_quality 75; # 设置能处理的最大原始图片文件,默认 1MB 太小了 image_filter_buffer 20M; # 拒绝外部直接访问 allow 127.0.0.0/8; deny all; }
/data/image/
- 原始图片存放目录
/data/thumbnail
缩略图存放目录
需确保 nginx worker 进程有写入权限
chown nginx:nginx /data/thumbnail
/tmp/image
- 生成缩略图时的临时目录
访问原始图片: http://127.0.0.1/image/test.jpeg
访问缩略图片: http://127.0.0.1/thumbnail/test.jpeg