nginx+fastdfs+image_filter 实现实时缩略图
nginx自带image_filter,在安装时需要配置
nginx图片过滤处理模块http_image_filter_module安装配置笔记
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用。
安装还是很简单的,默认HttpImageFilterModule模块是不会编译进nginx的,所以要在configure时候指定
./configure arguments: --prefix=/usr/local/nginx --with-http_image_filter_module
PS: HttpImageFilterModule模块需要依赖gd-devel的支持,可以使用yum或apt-get方便地安装,如果未安装回报“/configure: error: the HTTP image filter module requires the GD library.”错误
yum install gd-devel
apt-get install libgd2-xpm libgd2-xpm-dev
make&&make install后就可以进行配置了,做最简单的配置,先让模块可以跑起来^^
公司使用fastdfs作为文件服务,结合nginx实现文件访问,但原始图片比较大,需要实现缩略图的功能,经过一段时间的研究,今天终于实现了,直接贴配置。
server {
listen 8888;
server_name 192.168.10.10;
location ~*group([0-9])/M00/(.*)\.(jpg|gif|png)(_resize_) {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
set $width $arg_w;
set $height $arg_h;
rewrite ~*group([0-9])/M00/(.*)\.(jpg|gif|png) group1/M00/$2.$3 break;
image_filter crop $width $height;
image_filter_buffer 100M;
image_filter_jpeg_quality 75;
}
location ~*group([0-9])/M00/(.*)\.(jpg|gif|png) {
#alias /fastdfs/storage/data;
ngx_fastdfs_module;
}
}
访问方式举例:
原图:http://192.168.10.10:8888/group1/M00/00/12/xxxxxxxxxx.jpg
缩略图地址:http://192.168.10.10:8888/group1/M00/00/12/xxxxxxxxxx.jpg_resize_?w=200&h=200
前提:需要安装相关模块
1.ngx_http_image_filter_module
2.fastdfs-nginx-module
本文地址:https://my.oschina.net/u/437601/blog/840425
© 著作权归作者所有