Nginx http_image_filter_module 图片缩放模块

来源:互联网 发布:寿喜锅 知乎 编辑:程序博客网 时间:2024/06/10 21:48

http_image_filter_module 模块用来裁剪过大的图片(JPEG, GIF, PNG)到指定大小,是nginx自带模块,默认不会开启HttpImageFilterModule需要在编译要带上参数 –with-http_image_filter_module。官方文档http://wiki.nginx.org/HttpImageFilterModule

http_image_filter_module 主要有一下几个指令

  • /* 旋转图片 */
  • image_filter rotate 90 | 180 | 270

  • /* 等比例缩放图片 */

  • image_filter resize width height

  • /* 按大小缩放图片 */

  • image_filter crop width height

  • /* 单图片缓存大小 超过该大小返回415 */

  • image_filter_buffer size

  • /* 设置JPEG图片缩放后的质量 默认75 最高95 */

  • image_filter_jpeg_quality value

简单介绍后 开始测试吧

  1. 由于Nginx http_image_filter_module 模块内部依赖与gd库,所以先安装gd依赖
    sudo apt-get install libgd2-xpm libgd2-xpm-dev

  2. 安装Nginx
    ./configure --prefix=/usr/local/nginx --with-http_image_filter_module

  3. 配置http_image_filter_module模块

    location ~* /images/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ {    root /var/www;    set $width $2;    set $height $3;    image_filter_buffer 5M;    image_filter resize $width $height;    if ($height = "0") {        rewrite /images/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /images/$1.$4 last;    }    if ($width = "0") {        rewrite /images/(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ /images/$1.$4 last;    }    try_files /images/$1.$4  /images/404.jpg;}

    启动nginx
    sudo /usr/local/nginx/sbin/nginx
    启动成功后在浏览器输入 http://localhost/images/test_400x400.jpg 如果没有错误返回的就是缩放后的图片

0 0