nginx自动生成缩略图

网站上常常一张图片,多个地方需要使用不同的尺寸,一般的方案是上传的时候,根据不同的尺寸用程序生成多张图片。
这么做有两个缺点:
1.如果需要新的尺寸图片的话,只能遍历下数据库,重新生成一次图片。
2.图片的尺寸会越来越多,要存的图片也越来越多,仅仅是因为他们的尺寸不同。
nginx有个模块,可以处理此内容,http_image_filter_module,可以重新根据定义的大小来压缩后台代理服务器的原始图片,经测试,效果不错。
此模块默认是不安装的,插件名称http_image_filter_module ,安装nginx的时候,使用--with-http_image_filter_module来进行安装
安装方法,http://mushme.iteye.com/blog/1870080
server{
        listen 8282;
        server_name  simg.frady.info;#小尺寸图片的域名
        root /web/www/ROOT/;

location /picture/ {#此目录下的图片会被统一裁切
     image_filter test;
     proxy_pass http://img.frady.info;#原始图片的域名
    image_filter resize 60 60;
#  image_filter rotate 90;#旋转90度,这东西实际的使用场景有吗,在页面上旋转图片是用这个做?
    error_page   415 = /nopic.jpg;
}
    }


下面的配置可以反馈图片的信息
location /picture/ {
proxy_pass http://img.frady.info;
image_filter size;
}

结果如
{ "img" : { "width": 208, "height": 181, "type": "jpeg" } }

官网链接:http://nginx.org/en/docs/http/ngx_http_image_filter_module.html

猜你喜欢

转载自mushme.iteye.com/blog/1872783