java centos 缩略图_使用 Nginx 的 image_filter 模块来构建动态缩略图服务器

原标题:使用 Nginx 的 image_filter 模块来构建动态缩略图服务器

在以前我们实现缩略图机制通常是在当用户上传一张图片后,后端程序会固定将图片生成前端页面需要的不同大小缩略图。不管前端页面是否有使用,后端都会先产生好,这样做明显有以下缺陷:

占用过多的磁盘空间大小

前端页面需要更多样格式的缩略图时,需要单独处理。

当出现第二个问题时会比较麻烦,后端程序就需要将系统的全部图片重新产生一次所需的缩略图。这个过程非常耗时,也比较耗费系统性能。

现在比较流行的做法是改成透过 URL 定义长宽来即时生成所需的缩略图,实现的方式也有多种多样,本文将介绍使用 Nginx 的 image_filter 模块来实现动态生成缩略图。

从 Nginx 0.7.54 以后的版本,提供了一个 http_image_filter_module 的集成图片处理模块。该模块可以实现实时缩放图片、旋转图片、验证图片有效性以及获取图片宽高以及图片类型信息等功能。

安装 image_filter 模块

http_image_filter_module 模块在默认情况下是没有包含在官方预编译包中的,如果需要使用 http_image_filter_module 模块需要重新编译 Nginx。

查看是否已安装 image_filter 模块$ nginx -V

如果返回的结果中含有 --with-http_image_filter_module 字样就表明已经安装了 image_filter 模块。

编译 Nginx 并加入 image_filter 模块

启用 http_image_filter_module 模块的方法是比较简单的,由于http_image_filter_module 扩展需要 GD 库支持,首先需要安装相关依赖环境:

# CentOS / RHEL$ sudo yum -y install gd-devel# Ubuntu / Debian$ sudo apt-get install libgd2-xpm-dev

其次在原来的 Nginx 编译参数上加上 --with-http_image_filter_module 参数后重新编译 Nginx 就行了。

$ sudo wget http://nginx.org/download/nginx-1.15.0.tar.gz$ sudo tar xzvf nginx-1.15.0.tar.gz$ cd nginx-1.15.0/$ sudo ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值