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
注意:
复制代码代码示例:
yum install gd-devel
nginx图片过滤处理模块http_image_filter_module的配置:
apt-get install libgd2-xpm libgd2-xpm-dev
复制代码代码示例:
location ~ /simg/.*\.jpg$ {
最后开启nginx,这样访问/simg/目录下的图片,都会按照高度最高100并且宽度最高100按照原图比例进行截取出来,并输出给浏览器。#proxy_pass http://10.11.11.11; #rewrite "/simg/(.*\.jpg)$" /img/$1 break ; image_filter resize 100 100; error_page 415 = /empty; } 当然,也可以开启重写去读取本机另一个目录下源文件;如果不在一台机器上就可以开启proxy_pass,并加上重写即可。 http_image_filter_module支持5种指令: image_filter:测试图片文件合法性(image_filter test);3个角度旋转图片(image_filter rotate 90 | 180 | 270);以json格式输出图片宽度、高度、类型(image_filter size);最小边缩小图片保持图片完整性(resize width height);以及最大边缩放图片后截取多余的部分(image_filter crop [width] [height]); image_filter_jpeg_quality:设置jpeg图片的压缩质量比例(官方最高建议设置到95,但平时75就可以了); image_filter_buffer:限制图片最大读取大小,默认为1M; image_filter_transparency:用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量。 image_filter_sharpen:这个指令在nginx-1.1.8和1.0.11版本后增加的
示例:
复制代码代码示例:
location ~* ([0-9]+)-([0-9]+)\.(png|jpe?g|gif|ico)$ {
(责任编辑:IT)#if ($request_filename ~ ([0-9]+)-([0-9]+)\.(png|jpe?g|gif|ico)) { set $img_width $1; set $img_height $2; rewrite ^(.*)-[0-9]+-[0-9]+\.(png|jpe?g|gif|ico)$ /$1.$2 break; # } image_filter resize $img_width $img_height; image_filter_buffer 2M; expires 1y; access_log off; gzip off; } |