`
85977328
  • 浏览: 1898526 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx系列(二十二)nginx的图片过滤处理模块http_image_filter_module

 
阅读更多
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用。或者nginx前面再加一层缓存。

安装还是很简单的,默认HttpImageFilterModule模块是不会编译进nginx的,所以要在configure时候指定
./configure --prefix=/usr/local/nginx --with-http_image_filter_module

HttpImageFilterModule模块需要依赖gd-devel的支持,可以使用yum或apt-get方便地安装,如果未安装回报“/configure: error: the HTTP image filter module requires the GD library.”错误
centos办法
yum install gd-devel
ubuntu办法
apt-get install libgd2-xpm libgd2-xpm-dev
make && make install后就可以进行配置了,做最简单的配置,先让模块可以跑起来
location / {
    root   html;
    index  index.html index.htm;
}

location ~ /image/.*\.jpg$ {
    #proxy_pass     http://192.168.1.1;
    #rewrite "/image/(.*\.jpg)$" /img/$1 break;
    image_filter   resize  100 100;
    error_page     415   = /empty;
}
最后开启nginx,这样访问/image/目录下的图片,都会按照高度最高100并且宽度最高100按照原图比例进行截取出来,并输出给浏览器。当然也可以开启重写去读取本机另一个目录下源文件;如果不在一台机器上就可以开启proxy_pass,并加上重写即可。

http_image_filter_module支持5种指令:

image_filter:测试图片文件合法性(image_filter test);3个角度旋转图片(image_filter rotate 90 | 180 | 270);以json格式输出图片宽度、高度、类型(image_filter size);最小边缩小图片保持图片完整性(resize width height);以及最大边缩放图片后截取多余的部分(image_filter crop [width] [height]);

image_filter_jpeg_quality:设置jpeg图片的压缩质量比例(官方最高建议设置到95,但平时75就可以了);

image_filter_buffer:限制图片最大读取大小,默认为1M;

image_filter_transparency:用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量。

image_filter_sharpen:暂时未知。

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

        location ~* /(\w+)_(\d+)×(\d+)\.(jpg)$ {
            if (-e $document_root/$1.$4) {
                rewrite /(\w+)_(\d+)×(\d+)\.(jpg)$ /$1.$4?h=$2&w=$3 last;
            }
            return 404;
        }


在nginx的html目录下,上传图片123.jpg
通过浏览器访问
http://192.168.56.2:8080/123_800×800.jpg
0
2
分享到:
评论

相关推荐

    添加了http_image_filter_module模块的Nginx

    `http_image_filter_module`模块是Nginx内置的一个图像处理模块,它允许我们在服务器端对请求的图像进行实时处理,如缩放、裁剪、旋转等操作,而无需将原始图像文件发送到客户端。这一特性对于优化网站性能、减少...

    Nginx安装+nginx_upstream_check_module后端健康检查

    - **--with-http_image_filter_module**: 启用图像处理模块。 - **--add-module**: 添加第三方模块。 #### 三、配置Nginx.conf **3.1 编辑配置文件** 编辑`/usr/local/nginx/conf/nginx.conf`文件,进行如下配置...

    nginx官方文档中文版

    * ngx_http_image_filter_module * ngx_http_index_module * ngx_http_js_module * ngx_http_keyval_module * ngx_http_limit_conn_module * ngx_http_limit_req_module * ngx_http_log_module 其他模块 * ngx_...

    带http-image-filter-module的nginx(windows版)

    参考https://blog.csdn.net/qq_36749924/article/details/130992813 启动nginx后访问http://127.0.0.1/download/2.png

    Dockerfile 编译安装nginx

    Dockerfile 编译安装nginx ...RUN ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre --without-http_gzip_module && make -j 2 && make install ....... .......

    nginx文件资源下载

    【Nginx 文件资源下载详解】 Nginx 是一款高性能的 Web 和反向代理服务器,以其高并发、轻量级和稳定性的特点在 IT 行业中广泛应用。它不仅可以作为静态文件服务器,处理 HTML、CSS、JavaScript 等资源的下载请求,...

    Nginx之为已安装nginx动态添加模块的方法

    这里以安装第三方ngx_http_google_filter_module模块为例 nginx的模块是需要重新编译nginx,而不是像apache一样配置文件引用.so 1. 下载第三方扩展模块ngx_http_google_filter_module # cd /data/software/ # git...

    添加了http-image-filter-module模块的Nginx1.15.9

    使用参考地址:https://blog.csdn.net/qq_36749924/article/details/130992813 已经添加了http_image_filter_module模块的nginx版本,包含了libgd.dll,nginx版本1.15.9,windows64位版本

    Nginx1.22.0版本Linux已编译可直接使用

    image_filter_module=dynamic --with-http_geoip_module=dynamic --with-http_perl_module=dynamic --with-mail=dynamic --with-mail_ssl_module --with-stream=dynamic --with-stream_ssl_module --with-pcre --...

    在Nginx中配置image filter模块来实现动态生成缩略图

    总的来说,Nginx的image filter模块提供了强大的图像处理能力,不仅限于生成缩略图,还可以用于其他图像处理需求,如检测图片类型、获取尺寸等。通过适当的配置,可以构建高效、灵活的静态图片服务。不过,需要注意...

    Nginx_模块参考手册中文版

    ##### ImageFilter模块(Image Filter) ImageFilter模块支持图像的实时处理和转换。 #### Nginx邮件模块(Mail Modules) ##### 邮件核心模块(Mail Core) 邮件核心模块提供了邮件服务器的基本功能。 ##### ...

    Nginx模块参考手册中文版

    ##### ImageFilter模块 (Image Filter) ImageFilter模块支持图像过滤和转换功能。 #### Nginx邮件模块 ##### 邮件核心模块 (Mail Core) 邮件核心模块提供了邮件处理的基础功能,如接收和发送邮件。 ##### 邮件...

    fast+nginx.zip

    为了实现图片缩略图功能,我们需要在Nginx中集成一个图像处理模块,例如`ngx_http_image_filter_module`。这个模块允许Nginx在服务器端生成图片的缩略图,减少了客户端的计算负担。安装这个模块通常需要重新编译...

    nginx编译参数.docx

    - `--with-http_image_filter_module`: 处理图像的过滤模块。 这些模块的选择可以根据实际需求和系统资源进行定制,以优化Nginx的功能和性能。在编译过程中,正确配置这些参数能够确保Nginx在特定环境中高效、稳定...

    Nginx 模块参考手册中文版.pdf

    15. **ImageFilter模块**(Image Filter):提供图片处理功能。 #### 六、Nginx邮件模块 **Nginx邮件模块**用于处理邮件服务相关的任务,包括: 1. **邮件核心模块**(Mail Core):提供邮件处理的核心功能。 2. *...

    nginx-mobile-resize-conf:使用这个 nginx 配置,我们可以检查用户设备的类型(iPhone、iPod、iPad、Android 手机、Android 平板电脑),按比例增加请求图像的大小并缓存它

    nginx 的依赖ngx_http_image_filter_module ngx_let_module ngx_eval_module 配置nginx ./configure --with-http_image_filter_module --add-module=/path/to/ngx_let_module --add-module=/path/to/ngx_eval_module...

    [实战Nginx_取代Apache的高性能Web服务器].张宴.扫描版-new1

    4. **模块化扩展**:Nginx的强大之处在于其丰富的第三方模块生态系统,本书可能会详细介绍一些常用的模块,比如ngx_http_sub_module(用于替换文本中的字符串)、ngx_http_image_filter_module(用于图片处理)等,...

    nginx配置指南

    module --with-http_xslt_module --with-http_image_filter_module --with-http_geoip_module --with-http_perl_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --...

Global site tag (gtag.js) - Google Analytics