先来看一下什么是nginx的image filter模块。
HttpImageFilterModule用来裁剪过大的图片到指定大小,是nginx自带模块,默认不会开启
开启HttpImageFilterModule需要在编译要带上参数 --with-http_image_filter_module
该模块主要有两个指令:
语法:
image_filter (test | size | resize width height | crop width height) 默认是: 无
可出现的上下文: location
该指令指定图像的转化形式:
test - 测试回复是否是JPEG、GIF、或PNG图片(不支持BMP等其他格式),出错时返回415。
size - 返回图片的JSON数据,比如:( "Img": ( "width": 100, "height": 100, "type": "gif"))
resize - 根据设置按比例得减小图像,比如100*100的图片,而设置是50*25,减小后的图片为25*25。如果你只想设置一个维度,可以用“-”代替。出错时返回415。
crop - 根据设置按比例得减小图像,然后裁剪成跟设置一样大小的图片。比如100*100的图片,而设置是50*25,减小后的图片为50*50,Nginx会选取中间高度25的像素,形成50*25的图片,所以图片会有缺失。如果你只想设置一个维度,可以用“-”代替。出错时返回415。
语法: image_filter_buffer size
默认值: image_filter_buffer 1M
可出现的位置: http, server, location
该指令设置单图片缓存的最大值,如果过滤的图片大小超过缓存大小,会报错返回415。
现在开始时重点:
有了如上认识再配合locaiont、if、image_filter 就可以让nginx动态生成缩略图了。
假设你的图片位于/img目录下
访问缩略图方式
/images/9GUMJR7200AJ0003_90x90.jpg
访问原图方式
/images/9GUMJR7200AJ0003_90x0.jpg
/images/9GUMJR7200AJ0003_0x50.jpg
/images/9GUMJR7200AJ0003_0x0.jpg
/images/9GUMJR7200AJ0003.jpg
添加如下配置到server上下文即可
代码如下 | 复制代码 |
location ~* /images/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ { #根据给定的长宽生成缩略图 location ~* /images { |
荒野乱斗国际版 (BrawlStars)最新版本v56.274
下载一波超人内置修改器菜单版 安卓版v1.0.2
下载敢达决战官方正版 安卓版v6.7.9
下载敢达决战 安卓版v6.7.9
下载继承了一座戏园子无限声望铜钱版 内置菜单最新版v1.7
继承了一座戏园子折相思版是游戏的破解版本,在该版本中为玩家提
山河半世橙光清软金手指版 无限鲜花v3.24
山河半世是一款超级好玩的橙光恋爱游戏,在游戏中玩家们需要扮演
蓬莱手游折相思版 安卓版v1.0.0
蓬莱免广告版是游戏的修改版本,在该版本中为玩家去除了广告,玩
当红影后橙光游戏破解版2025 最新版v1.0
当红影后橙光破解版是一款超级好玩的娱乐圈题材的橙光游戏,在这
忽然成了万人迷清软完结版 无限鲜花版v12.15
忽然成了万人迷破解版是一款非常好玩的男性向橙光游戏,在有一天