本文主要是介绍FastDFS简介及搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、什么是FastDFS
FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
二、FastDFS架构
包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务。可以将tracker称为追踪服务器或调度服务器。Storage server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。可以将storage称为存储服务器。
三、文件上传流程
1)上传连接请求,客户端会向tracker server发出上传文件的请求
2)tracker收到请求后,返回storage server的ip和端口
3)客户端连接storage,并且上传文件
4)文件上传完成后,storage返回路径信息
四、文件下载流程
tracker根据请求的文件路径即文件ID 来快速定义文件。比如请求文件:group1/M00/00/00/agIBmlee7fOATa1MAAFw6fBcZXY841.png
1.通过组名tracker能够很快的定位到客户端需要访问的存储服务器组是group1,并选择合适的存储服务器提供客户端访问。
2.存储服务器根据“文件存储虚拟磁盘路径”和“数据文件两级目录”可以很快定位到文件所在目录,并根据文件名找到客户端需要访问的文件。
五、FastDFS搭建
使用一台虚拟机来模拟,只有一个Tracker、一个Storage服务,配置nginx访问图片,不涉及集群。
6.fastdfs搭建步骤
第一步:把fastDFS都上传到linux系统。
第二步:安装FastDFS之前,先安装libevent工具包。命令:yum -y install libevent
第三步:安装libfastcommonV1.0.7工具包。
1、解压缩:tar zxf libfastcommonV1.0.7
2、./make.sh
3、./make.shinstall
4、把/usr/lib64/libfastcommon.so文件向/usr/lib/下复制一份:cp /usr/lib64/libfastcommon.so /usr/lib
第四步:安装Tracker服务。
1、解压缩:tar zxf fastdfs-5.05.tar.gz
2、./make.sh
3、./make.shinstall
安装后在/usr/bin/目录下有以fdfs开头的文件都是编译出来的。
配置文件都放到/etc/fdfs文件夹
4、把/root/FastDFS/conf目录下的所有的配置文件都复制到/etc/fdfs下。
5、配置tracker服务。修改/root/FastDFS/conf/tracker.conf文件:vim tracker.conf
6、启动tracker。/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启使用命令:/usr/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
第五步:安装storage服务。
1、如果是在不同的服务器安装,第四步的1~4需要重新执行。
2、配置storage服务。修改/root/FastDFS/conf/storage.conf文件
3、启动storage服务。
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
如果是重启用restart,如果是第一次启动不用加restart,start也不需要。
第六步:测试服务。
1、修改配置文件/etc/fdfs/client.conf
2、测试
/usr/bin/fdfs_test/etc/fdfs/client.conf upload anti-steal.jpg
第七步:搭建nginx提供http服务。
可以使用官方提供的nginx插件。要使用nginx插件需要重新编译。
fastdfs-nginx-module_v1.16.tar.gz
1、解压插件压缩包
2、修改/root/fastdfs-nginx-module/src/config文件,把其中的local去掉
3、对nginx重新config
./configure \
--prefix=/var/nginx\
--with-http_gzip_static_module\
--http-client-body-temp-path=/var/nginx/client\
--http-proxy-temp-path=/var/nginx/proxy\
--http-fastcgi-temp-path=/var/nginx/fastcgi\
--http-uwsgi-temp-path=/var/nginx/uwsgi\
--http-scgi-temp-path=/var/nginx/scgi\
--add-module=/root/soft/fastdfs-nginx-module/src
4、make
5、make install
6、把/root/fastdfs-nginx-module/src/mod_fastdfs.conf文件复制到/etc/fdfs目录下。编辑:
7、nginx的配置
在nginx的配置文件中添加一个Server:
改为:
server {listen 80;server_name 192.168.101.3;location /group1/M00/{ngx_fastdfs_module;}}
8、将libfdfsclient.so拷贝至/usr/lib下
cp /usr/lib64/libfdfsclient.so /usr/lib/
9、启动nginx
10、nginx服务
本篇博客为学习中记录,按照教学视频搭建,所有都是按老师搭建成功。
这篇关于FastDFS简介及搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!