zoukankan      html  css  js  c++  java
  • 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 文件服务

  • 相关阅读:
    Java中ArrayList与LinkedList的区别
    Java中String、StringBuffer、StringBuilder的区别
    Java中的String类能否被继承?为什么?
    JAVA有哪些数据类型?基本数据类型各占多少个字节
    Linux远程复制命令SCP
    CentOS添加用户并加入sudo权限
    nginx配置反向代理解决前后端分离跨域问题
    执行ssh-add时出现Could not open a connection to your authentication agent
    Git 修改源地址
    ssh配置git clone简易流程
  • 原文地址:https://www.cnblogs.com/tianyamoon/p/9446491.html
Copyright © 2011-2022 走看看