FasDfs缩略图解决方案 -- Linux

前面研究了fastdfs的安装部署,并且做了多机同步。

这次我们解决下FastDFS做文件服务器并处理缩略图的问题。

有两个方案,方案1,在上传过程中生成多张图片,服务器存备。方案2,只上传一张图片,在下载时候进行调整。我们这里采用方案2。

①安装gd,HttpImageFilterModule模块需要依赖gd-devel的支持

yum -y install gd-deve

出错了,怎么办。

查找参数来列出gd-deve相关的包名:

yum search gd-devel

yum -y install gd-devel.x86_64

安装成功

 ②将http_image_filter_module包含进来

1、 cd nginx-1.14.0

  # nginx-1.14.0是我们的nginx安装包目录

2、./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src --with-http_image_filter_module 

  #只是比前面配置多加了个--with-http_image_filter_module

3、 make && make install 重新安装

③修改配置

vim /usr/local/nginx/conf/nginx.conf

结果

        location ~ group1/M00/(.+)_([0-9]+)x([0-9]+)\.(jpg|gif|png) {
            alias /data0/fastdfs/storage/storage0/data;
            ngx_fastdfs_module;
            set $w $2;
            set $h $3;

            if ($w != "0") {
                rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break;
            }

            if ($h != "0") {
                rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$1.$4 break;
            }

            #根据给定的长宽生成缩略图   
            image_filter resize $w $h;

            #原图最大2M,要裁剪的图片超过2M返回415错误,需要调节参数image_filter_buffer  
            image_filter_buffer 2M;

            #try_files group1/M00$1.$4 $1.jpg;
        }


        location ~ group1/M00/(.+)\.?(.+){
              alias /data0/fastdfs/storage/storage0/data;
              ngx_fastdfs_module;
        }

④测试

还是用我们之前的图,虽然有点小

原图

http://192.168.50.20/group1/M00/00/00/wKgyFFtm9mWAZfJhAAANHkI1RM4732.gif

 

缩略图

http://192.168.50.20/group1/M00/00/00/wKgyFFtm9mWAZfJhAAANHkI1RM4732_80x50.gif

差别只是最后gif前加了个"_80x50"

 


 

GD是什么?

1、GD库是php平台的一个关于图像处理的扩展。

PHP通过GD扩展去操作图片,是先在内存中处理,处理完以后以文件流的方式输出,可以输出到浏览器,也可以输出到磁盘上。因此一般的步骤是:

  1. 创建画布。其实就是在内存中开辟一块区域。
  2. 在画布上绘制图形。可以填充颜色,绘制“点”、“线”、“文本”、“图像”等
  3. 输出图像(浏览器或者磁盘)。
  4. 销毁图像,释放资源。

我们这里不介绍太多,具体看园友的链接  GD库简介和使用

2、http_image_filter_module是什么?

http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版,可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息 。

 

相关阅读:

CentOS7最小化安装-Linux-1

安装配置fastDFS文件服务器 - Linux

FastDFS 配置 Nginx 模块,并实现分布式同步-Linux

FasDfs缩略图解决方案 -- Linux

C# 使用FastDFS 文件服务

 

posted @ 2018-08-08 23:59  tianyamoon  阅读(2117)  评论(0编辑  收藏  举报