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/(.+)_([-]+)x([-]+)\.(jpg|gif|png) {
alias /data0/fastdfs/storage/storage0/data;
ngx_fastdfs_module;
set $w $;
set $h $; if ($w != "") {
rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$.$ break;
} if ($h != "") {
rewrite group1/M00(.+)_(\d+)x(\d+)\.(jpg|gif|png)$ group1/M00$.$ break;
} #根据给定的长宽生成缩略图
image_filter resize $w $h; #原图最大2M,要裁剪的图片超过2M返回415错误,需要调节参数image_filter_buffer
image_filter_buffer 2M; #try_files group1/M00$.$ $.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扩展去操作图片,是先在内存中处理,处理完以后以文件流的方式输出,可以输出到浏览器,也可以输出到磁盘上。因此一般的步骤是:
- 创建画布。其实就是在内存中开辟一块区域。
- 在画布上绘制图形。可以填充颜色,绘制“点”、“线”、“文本”、“图像”等
- 输出图像(浏览器或者磁盘)。
- 销毁图像,释放资源。
我们这里不介绍太多,具体看园友的链接 GD库简介和使用
2、http_image_filter_module是什么?
http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版,可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息 。
相关阅读:
FastDFS 配置 Nginx 模块,并实现分布式同步-Linux
C# 使用FastDFS 文件服务
FasDfs缩略图解决方案 -- Linux的更多相关文章
- Addrss already in user 解决方案 (linux)
Addrss already in user 解决方案 查pid netstat -lptu 查看当前用户的进程 pid kill -9 pid 杀进程 重复上面步骤一次, 因为一遍杀不死.他会换一 ...
- Mycat分布式数据库架构解决方案--Linux安装运行Mycat
echo编辑整理,欢迎转载,转载请声明文章来源.欢迎添加echo微信(微信号:t2421499075)交流学习. 百战不败,依不自称常胜,百败不颓,依能奋力前行.--这才是真正的堪称强大!!! Myc ...
- FastDFS 配置 Nginx 模块,并实现分布式同步-Linux
1.搭建虚拟机 a.复制虚拟机文件 首先复制我们之前安装好的fastdfs虚拟机,因为我们现在要设置它的IP为21,改名为CentOS-fastdfs - 21. b.设置网络 生成新的MAC地址 设 ...
- 安装配置fastDFS文件服务器 - Linux
一.配置linux环境 1.新建虚拟机 把上次安装的CentOS7的文件复制一份,并改名 打开VM>打开虚拟机,选择刚才复制好的虚拟机,并启动.这样做的目的主要是为了保留一份最基础的母本,为了将 ...
- CentOS7最小化安装-Linux-1
CentOS 7的安装其实很简单,主要是网络配置. 选英文.设置时区等 最小化安装 先启动一个网络 Begin 吧 在安装的时候设置好root密码.很简单 别去点安装tools. 等待安装完成后,点击 ...
- Linux下Crontab定时任务的使用教程 以及 无法执行定时任务的解决方案
前言 本文学习思路:Linux的corntab定时任务的使用教程 --> 定时任务无效的解决方案 Linux的corntab定时任务的使用教程 1. 首先,输入命令 打开crontab定时 ...
- Linux权限:提示-bash: ./startup.sh: Permission denied的解决方案
Linux权限:提示-bash: ./startup.sh: Permission denied的解决方案 Linux上启动Tomcat,结果弹出:-bash: ./startup.sh: Permi ...
- Linux 下 netbeans 字体抗锯齿正解
转自:http://leenjewel.blog.163.com/blog/static/601937922010124444051/ 说来这个不难,主要是我看网上有的写的不是很明确,甚至有的写的根本 ...
- Linux 双向 SSH 免密登录
原理 双向,顾名思义,双方互通,此处的意思是多台 linux 两两免密登录.双向比单向多了些操作,单向只需把某一个linux的公钥发送给其他linux即可,而双向要实现集群中的每一台机器都保存其他所有 ...
随机推荐
- 用Matlab进行部分分式展开
[r p k]=residue[num,den] 例如H(s)=(2s3+5s2+3s+6)/(s3+6s2+11s+6) num=[2 5 3 6]; den=[1 6 11 6]; [r p k] ...
- eclipse 修改 项目的git地址
在项目的隐藏目录.git 文件夹下面 修改config配置文件 [core] symlinks = false repositoryformatversion = 0 filemode = false ...
- ALGO-39_蓝桥杯_算法训练_数组排序去重
问题描述 输入10个整数组成的序列,要求对其进行升序排序,并去掉重复元素. 输入格式 10个整数. 输出格式 多行输出,每行一个元素. 样例输入 样例输出 解题思路: 若输入的数字存在数组中,剔除,否 ...
- C++进阶--解谜operator new/delete
//############################################################################ // 解谜operator new/del ...
- SpringBoot工程+热部署进行远程调试
本文转载自:https://blog.csdn.net/qq_31868349/article/details/78553901 SpringBoot工程+热部署进行远程调试 本地端添加配置 在pom ...
- react基础
上一篇文章主要是记录了自己是如何创建react项目的,今天则主要是总结一下react中的一个基础入门知识,包括数据定义和绑定.属性绑定.数组循环等等. 组件继承和挂载 当我们使用脚手架或者命令行创建一 ...
- java1.8 新特性(关于 match,find reduce )操作
match处理Integer集合 package lambda.stream; /** * @author 作者:cb * @version 创建时间:2019年1月4日 下午2:35:05 */ i ...
- 学习笔记之JavaScript
JavaScript 教程 | 菜鸟教程 http://www.runoob.com/js/js-tutorial.html JavaScript 是 Web 的编程语言. 所有现代的 HTML 页面 ...
- 廖雪峰Java3异常处理-2断言和日志-4使用Log4j
1.Log4j Log4j是目前最流行的日志框架.有两个版本 1.x:Log4j 2.x:Log4j2 Log4j下载地址https://www.apache.org/dyn/closer.lua/l ...
- python直接下载图片到内存
1. 使用requests(推荐) from PIL import Image import requests Image.open(requests.get(url, stream=True).ra ...