ITPub博客

首页 > Linux操作系统 > Linux操作系统 > nginx image_filter模块

nginx image_filter模块

原创 Linux操作系统 作者:wang_0720 时间:2013-11-22 16:03:57 0 删除 编辑
nginx有个动态生成图片的模块,每次访问的时候根据请求的尺寸动态生成图片,生成的图片不保存在磁盘中,网站访问量不大的情况下可以尝试。下面介绍该模块的添加配置方法。
在nginx中用/usr/local/nginx/sbin/nginx -V 命令查看该模块是否已经编译了。
root@node1 nginx]# /usr/local/nginx/sbin/nginx -V
nginx version: nginx/1.4.3
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-51)
TLS SNI support disabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/pcre/lib/ --with-http_image_filter_module
有了--with-http_image_filter_module参数,说明该模块已经有了,如果没有,就要重新编译。
对图片的裁剪配置
location  ~* /images/(.*)_([\d]+)x([\d]+).(jpg|png|gif|jpeg)$ {
                root /usr/local/nginx/html;
                set $img_name $1;
                set $img_width $2;
                set $img_height $3;
                if ( !-e $document_root/images/$img_name.jpg ) {
                        return 404;
                }
                rewrite ^/images/(.*)_(.*)x(.*).jpg$ /images/$img_name.jpg break;
                image_filter resize $img_width $img_height;
                image_filter_buffer 5M;
                image_filter_jpeg_quality 95;
                image_filter_transparency on;
         }
resize - 根据设置按比例得减小图像
image_filter_buffer - 设置图片最大尺寸,超过设定值会返回错误页面。
image_filter_jpeg_quality 设置jpeg图片的压缩质量比例
image_filter_transparency 用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量
由于该模块不产生真实图片,所有访问量大时占用cpu会比较高,建议前端加cache。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27181165/viewspace-777344/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-11-05

  • 博文量
    111
  • 访问量
    907411