现在的位置: 首页nginx>正文
nginx生成缩略图配置
2013年07月15日 nginx 暂无评论 ⁄ 被围观 4,940 view+

使用nginx自带模块生成缩略图,模块:–with-http_image_filter_module.

nginx编译参数,线上--with-debug关闭,不需要打开

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module --with-http_realip_module --with-http_image_filter_module --with-debug

修改nginx.conf配置文件,或者放到你相应的server块中.

location ~* /(\d+)\.(jpg)$ {
set $h $arg_h;   # 获取参数h的值
set $w $arg_w; # 获取参数w的值
#image_filter crop $h $w;
image_filter resize $h $w; # 根据给定的长宽生成缩略图
}

location ~* /(\d+)_(\d+)x(\d+)\.(jpg)$ {
if ( -e $document_root/$1.$4 ) { # 判断原图是否存在
rewrite /(\d+)_(\d+)x(\d+)\.(jpg)$ /$1.$4?h=$2&w=$3 last;
    }
return 404;
}

例如图片:

http://blog.jiunile.com/111_100x10.jpg

1、 首先判断是否存在原图111.jpg,不存在直接返回404(如果原图都不存在,还生成缩略图干啥,对吧)

2、 跳转到http://blog.jiunile.com/111.jpg?h=100&w=10,将参数高h和宽10带到url中。

3、 Image_filter resize指令根据h和w参数生成相应缩略图。

备注:长宽取小,例如原图是100*10,你传入的是10*2,那么他会给你生成10*1的图片.

生成缩略图只是image_filter功能中的一个,它一共支持4种参数:

test:返回是否真的是图片

size:返回图片长短尺寸,返回json格式数据

corp:截取图片的一部分,从左上角开始截取,尺寸写小了,图片会被剪切

resize:缩放图片,等比例缩放

nginx生成缩略图优缺点

优点:

1、 根据传入参数即可生成各种比例图片

2、 不占用任何硬盘空间

缺点:

1、消耗CPU,访问量大将会给服务器带来极大的负担.

建议:

生成缩略是个消耗cpu的操作,如果访问量比较大的站点,最好考虑使用程序生成缩略图到硬盘上,或者在前端加上cache或者使用CDN。

来源:http://www.ttlsa.com/html/1612.html

给我留言

留言无头像?


×
腾讯微博