首页 > 代码库 > nginx自动生成缩略图

nginx自动生成缩略图

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

Java代码  收藏代码
  1. server{  
  2.         listen 8282;  
  3.         server_name  simg.frady.info;#小尺寸图片的域名  
  4.         root /web/www/ROOT/;  
  5.   
  6. location /picture/ {#此目录下的图片会被统一裁切  
  7.      image_filter test;  
  8.      proxy_pass http://img.frady.info;#原始图片的域名  
  9.     image_filter resize 60 60;  
  10. #  image_filter rotate 90;#旋转90度,这东西实际的使用场景有吗,在页面上旋转图片是用这个做?  
  11.     error_page   415 = /nopic.jpg;  
  12. }  
  13.     }  



Java代码  收藏代码
  1. 下面的配置可以反馈图片的信息  
  2. location /picture/ {  
  3. proxy_pass http://img.frady.info;  
  4. image_filter size;  
  5. }  


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

nginx自动生成缩略图