nginx 开启Nginx缩略图功能

Nginx 缩略图需要用到 image_filter模块,先贴一些基本参数,备忘之。

  • image_filter:有如下 2 种模式:
    ①、resize:根据尺寸比例缩放图片,比如 100*100 的图片,而设置是 50*25,减小后的图片为 25*25。如果你只想设置一个维度,可以用“-”代替。出错时返回 415
    ②、crop:完全根据尺寸裁剪图片,直接裁剪成跟设置一样大小的图片。比如 100*100 的图片,而设置是 50*25,减小后的图片为 50*50,Nginx 会选取中间高度 25 的像素,形成 50*25 的图片,所以图片会有缺失。如果你只想设置一个维度,可以用“-”代替。出错时返回 415

  • image_filter_buffer:设置图片最大尺寸,超过设置值会返回错误页面

  • image_filter_jpeg_quality:设置 jpeg 图片的压缩质量比例

  • image_filter_transparency:用来禁用 gif 和 palette-based 的 png 图片的透明度,以此来提高图片质量



需要用到 Nginx 的缩略图模块,所以先执行 -V 命令查看 Nginx 是否已经编译了该模块http_image_filter_module

location ~ (.+)\.(jpg|gif|png|jpeg)!(\d+)x(\d+)$ {
    set $w $3; #宽
    set $h $4; #高
    set $q $5; #图片质量
    image_filter resize $w $h;
    image_filter_buffer 5M;
    #如果找不到图片,将返回如下预设图片(请放置正确的图片)
    try_files $1.$2 /notfound.jpg;
}


调用地址  https://www.xxxx.com/uploadfile/202204/15/20201116165447_477179.jpg!300x200