前面研究了fastdfs的安装部署,而且作了多机同步。php
此次咱们解决下FastDFS作文件服务器并处理缩略图的问题。html
有两个方案,方案1,在上传过程当中生成多张图片,服务器存备。方案2,只上传一张图片,在下载时候进行调整。咱们这里采用方案2。nginx
yum -y install gd-deve
出错了,怎么办。vim
查找参数来列出gd-deve相关的包名:浏览器
yum search gd-devel
yum -y install gd-devel.x86_64
安装成功服务器
一、 cd nginx-1.14.0分布式
# nginx-1.14.0是咱们的nginx安装包目录post
二、./configure --prefix=/usr/local/nginx --add-module=/usr/local/src/fastdfs-nginx-module/src --with-http_image_filter_module 测试
#只是比前面配置多加了个--with-http_image_filter_modulespa
三、 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是什么?
一、GD库是php平台的一个关于图像处理的扩展。
PHP经过GD扩展去操做图片,是先在内存中处理,处理完之后以文件流的方式输出,能够输出到浏览器,也能够输出到磁盘上。所以通常的步骤是:
咱们这里不介绍太多,具体看园友的连接 GD库简介和使用
二、http_image_filter_module是什么?
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54之后的版,能够用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息 。
相关阅读:
FastDFS 配置 Nginx 模块,并实现分布式同步-Linux
C# 使用FastDFS 文件服务