简单的 FastDFS + Nginx 应用实例
wx_fmt=gif&wxfrom=5&wx_lazy=1" style="visibility:visible !important;" alt="640?wx_fmt=gif&wxfrom=5&wx_lazy=1" />
本文来自作者 only you 在 GitChat 上分享 「FastDFS + Nginx(单点部署)应用实例」
编辑 | 哈比
现在流行框架设计简述
在互联网大行其道的今天。各种分布式系统已经司空见惯。
搜索引擎、电商站点、微博、微信、O2O 平台,凡是涉及到大规模用户、高并发訪问的,无一不是分布式。
关于分布式系统,并没有一个标准答案,说某某架构一定是最好的。
不同的业务形态所面对的挑战不一样,使用的架构设计也不一样,通常都须要详细业务详细分析。
水平扩展和垂直拆分是分布式架构的两种思路,但并非一个二选一的问题,很多其它的是兼并合用。以下介绍一个实际的场景。这也是很多互联网的公司架构思路。
文件server的诞生和应用背景
现现在非常多的系统中,须要存储过多的图片、视频等资料,文件存储、文件同步、文件訪问(文件上传、文件下载)等这些问题就出来了。
怎么攻克了大容量存储和负载均衡的问题?对以文件为载体的在线服务,如相冊站点、视频站点等,文件server就起到了支撑的作用。
FastDFS 文件server的诞生背景和应用意义
FastDFS 是一个开源的轻量级分布式文件系统。
在一个分享的磁盘文件系统中,全部节点对数据存储区块都有同样的訪问权,在这种系统中。訪问权限就必须由客户端程序来控制。
分布式文件系统可能包括的功能有透通的数据复制与容错。
分布式文件系统是被设计用在局域网。而分布式数据存储,则是泛指为应用分布式运算技术的文件和数据库等提供数据存储服务的系统。
接下来。我们就搭建 FastDFS 文件server,体验它的强大之处。
FastDFS 文件server搭建
搭建好开发环境介绍
本人測试环境为 Centos7 系统,一台 192.168.229.128 作为 tracker,一台 192.168.229.129 作为 storage。
安装步骤
安装依赖环境
安装命令例如以下。
yum install make cmake gcc gcc-c++
安装公共安装包 libfastcommon
网上下载该包放到安装文件夹下,我的安装文件夹是 /usr/local/software,大家依据自己的习惯自定义。
解压该安装包到 /usr/local/fast 文件夹下。
解压命令例如以下。
unzip libfastcommon-mastar.zip –d /usr/local/fast
进入解压文件夹下,例如以下图所看到的。
进行编译和安装
编译命令例如以下。
./make.sh
安装命令例如以下。
./make.sh install
运行过程。例如以下图所看到的。
进行软件创建
FastDFS 主程序设置的文件夹为 /usr/local/lib/,所以我们须要创建 /usr/lib64/ 下的一些核心运行程序的软连接文件。
创建我们自己的 lib 文件夹,命令例如以下。
mkdir /usr/local/lib/
创建以下的软连接。命令分别为:
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so
运行界面例如以下图所看到的。
https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaOKBMEolH5b8g5Rv8iagibJlibyS2CduJt456AkfIXJnsOZQluW01oicUXspBzawYKa8teP99pd5J2Ofw/640?wx_fmt=png" alt="640?wx_fmt=png" />
安装 FastDFS 主程序
首先须要自己到网上下载 FastDFS 安装包。
在这里,我用的是 5.05 版本号的。
把我们从网上下载下来的 FastDFS_v5.05.tar.gz 进行解压到 /usr/local/fast/ 下。使用到的命令例如以下。
cd /usr/local/software
tar -zxvf FastDFS_v5.05.tar.gz -C /usr/local/fast/
进入解压文件夹进行编译安装
进入解压文件夹,命令例如以下。
cd /usr/local/fast/FastDFS/
编译命令例如以下。
./make.sh
安装命令例如以下
./make.sh install
运行界面例如以下图所看到的。
https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaOKBMEolH5b8g5Rv8iagibJlibjWDCfzyF0H3J8nicvpTUvVSbA8biadHfOqXIG9UFvnq8R3R8ibXEEB9VA/640?wx_fmt=png" alt="640?wx_fmt=png" />
中间没有不论什么的 error 字样,说明成功安装。
相关脚本说明
安装完毕后。服务脚本在以下文件夹中。
/etc/init.d/fdfs_storaged
/etc/init.d/fdfs_trackerd
配置文件在以下文件夹中。
/etc/fdfs/client.conf.sample
/etc/fdfs/storage.conf.sample
/etc/fdfs/tracker.conf.sample
以下这张图显示了服务脚本的文件夹和文件列表。
wx_fmt=png" alt="640?wx_fmt=png" />
下图显示了在配置文件文件夹下备份的默认配置文件。
由于 FastDFS 服务脚本设置的 bin 文件夹为 /usr/local/bin/,可是实际我们安装在了 /usr/bin/ 以下。所以我们须要改动 FastDFS 配置文件里的路径。也就是须要改动两个配置文件。命令例如以下。
vim /etc/init.d/fdfs_storaged
%s+/usr/local/bin+/usr/bin // 进行全局替换命令
vim /etc/init.d/fdfs_trackerd
%s+/usr/local/bin+/usr/bin// 进行全局替换命令
配置跟踪器
首先我们进入 /etc/fdfs/ 文件夹下。把 tracker.conf.sample 文件 Cope 一份。
去改动 tracker.conf 文件。改文件作为 tracker 启动配置文件。
命令例如以下。
vim /etc/fdfs/tracker.conf
改动 tracker 的 basepath 文件夹之后。别忘了创建改文件夹。命令例如以下。
mkdir -p /fastdfs/tracker
到这里,我们的跟踪器就能够启动了。见下图。
当然在这个之前要关闭防火墙操作。
wx_fmt=png" alt="640?
wx_fmt=png" />
有二个确定的字样,说明了启动成功。
扫描下方二维码
阅读完整原文
并与作者交流
https://mmbiz.qpic.cn/mmbiz_png/0vU1ia3htaaM7ktDqefFrwHic9GiccCzzo25iaCeC0LOkmv7dsnsFMllJWvSEMDZavutDG27HCsAmsgiadHDJvRrmDA/640?wx_fmt=png" alt="640?wx_fmt=png" />
最新文章
- eclipse for java developer和eclipse for java ee developer的区别
- 编写一个Singleton程序(单例)
- 基于gulp 的前端自动化构建方案总结
- Jenkins 插件 CIFS
- 51nod1295 XOR key
- [Node.js] Level 7. Persisting Data
- poj 1392 Ouroboros Snake
- JS判断终端(Android IOS)
- HDU5289
- MySql数据库索引优化注意事项
- ExpandableListView 箭头样式
- EBS动态创建账户组合实现
- [C++]指针浅析
- 一个适合.NET Core的代码安全分析工具 - Security Code Scan
- .Net Core+Angular6 学习 第三部分(从api获取data)
- laravel学习资料
- HTML5 汉字转化为拼音,带读声,穷举多音字
- elementui异步后台校验表单,修改重复校验
- 【转载】多模式串匹配之AC自动机
- Python全栈之路----编程基本情况介绍
热门文章
- (转)JavaWeb学习之Servlet(一)----MyEclipse及Tomcat的配置
- vim技巧3
- 180400之pycharm快捷方式汇总
- 问题7:JavaScript 常用正则示例
- TCP/IP协议(一)网络基础知识 网络七层协议
- 使用wrk进行压力测试
- 【JavaScript从入门到精通】第三课 初探JavaScript魅力-03
- No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer
- php读取ini配置文件属性
- 招中高级web开发工程师