http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用。
操作步骤
1.于服务器安装gd库组件支持
yum -y install gd-devel
2.服务器已有nginx,检测服务器nginx,查看是否编译安装过http_image_filter 模块支持。
nginx -V
如果没有,需要重新编译支持。
/configure –prefix=/usr/local/nginx –with-http_image_filter_module
如果服务器没有安装过nginx,则进行编译安装nginx的时候,添加此模块接口。
3.编译完成nginx,配置并重启服务。
站点示例配置:
server{
listen 80;
server_name img0.libaocai.com img1.libaocai.com;
root /data/www/liboacai.com/Public;location ~* (.*\.(jpg|gif|png))!(.*)x(.*)$ {#这里的后缀规则是可以自定义的,看个人喜好了
set $width $3;
set $height $4;
rewrite “(.*\.(jpg|gif|png))(.*)$” $1;
}location ~* /Uploads/.*\.(jpg|gif|png)$ {
image_filter resize $width $height;
image_filter_buffer 20M;
image_filter_jpeg_quality 51;
}}
重启服务
/data/soft/nginx/sbin/nginx -s reload
4.测试访问
这里的后缀规则是可以自定义的,看个人喜好了
http://img0.libaocai.com/Uploads/20170828/59a376ec38e7c.jpg!400×600
访问配图示例
http://img0.libaocai.com/Uploads/20170828/59a376ec38e7c.jpg!200×200
配图示例:
参数补充说明
image_filter off #关闭,默认值 image_filter test #测试是否是图片(JPEG、GIF、PNG),否的话返回415错误 image_filter size #获取图片信息(JSON),比如{ "img" : { "width": 100, "height": 100, "type": "gif" } } image_filter rotate 90 | 180 | 270 #旋转图片 image_filter resize width height #改变图片的大小 image_filter crop width height #裁剪图片到指定大小
image_filter_buffer 1m #指定可读取图片的大小,默认是1M image_filter_jpeg_quality 75 #设置JPEG图片压缩的质量,默认是75,建议最大不要超过90 image_filter_sharpen 0 #设置锐化度,默认是0 image_filter_transparency on #这是是否透明,默认是on,用在PNG或GIF图片上
转载请注明:苏demo的别样人生 » nginx http_image_filter_module模块简易实现图片服务器