nginx模块image_filter
发布于 分类 Nginx
125天前 有1个用户阅读过
项目有个的需求,需要根据URL参数的不同动态调整图片大小,使用Nginx的一个图片处理模块ngx_http_image_filter_module就可以实现动态调整图片了。
安装NGINX模块和部署步骤
1.安装gd-devel库
http_image_filter_module依赖gd-devel库,因此安装http_image_filter_module模块前需要首先安装gd-devel库。
Redhat、Centos运行如下命令安装:
# yum install -y gd-devel
Debian、Ubuntu运行如下命令安装:
# apt-get install libgd2-xpm libgd2-xpm-dev
2.NGINX安装http_image_filter_module模块 (tengine大同小异)
安装完gd-devel库后就可以重新编译安装nginx了,编译前需要./configurer指定编译http_image_filter_module模块:
# ./configure --prefix=/usr/local/nginx --with-http_image_filter_module
# make && make install
3.设置nginx配置
这是我的一个demo, url结构根据需要和喜欢稍作调整即可
### nginx 图片动态调整大小
location ~"^(/photos/.*\.(jpg|png|jpeg|bmp|JPG|GIF|PNG|BMP))!(\d)x(\d+)$" {
set $w $3;
set $h $4;
if ($w ="0") {
set $w"-";
}
if ($h ="0") {
set $h"-";
}
rewrite ^(/photos/.*\.(jpg|png|jpeg|bmp|JPG|GIF|PNG|BMP))!(\d+)x(\d+)$ $1 break;
image_filter resize $w $h; #按宽高对图片进行压缩
image_filter_buffer 2M; #设置图片缓冲区的最大大小,大小超过设定值,服务器将返回错误415
image_filter_jpeg_quality 95;
try_files $1 404;
expires 10d;
}
最后,重新加载nginx配置使之生效,image_filter旋转图片以及更多裁剪用法请查看相关资料
-- The End --