FastDFS :是以C语言开发的一项开源轻量级分布式文件系统
环境
操作系统:CentOS7
服务器地址:192.168.142.155
Web服务器:Nginx
具体搭建过程
所需依赖
- gcc编译器
- libfastcommon(FastDFS依赖的公共库)
- perl语言环境
- fastdfs-nginx-module模块(用于Nginx整合FastDFS,实现通过浏览器访问FastDFS)
安装依赖gcc
yum -y install gcc
安装依赖libfastcommon
-
下载安装包
https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz -
上传到服务器,解压到/data/soft 目录下
tar -zxvf V1.0.38.tar.gz -C /data/soft
-
进入解压后的路径,编译,安装
cd /data/soft/libfastcommon-1.0.38 #进入解压后的路径 ./make.sh #编译 ./make.sh install #安装
安装依赖perl
-
安装
yum install perl
-
验证
perl -v
安装依赖fastdfs-nginx-module
-
下载安装包
https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.tar.gz -
上传到服务器上并解压(解压到/data/soft目录下)
tar -zxvf V1.20.tar.gz -C /data/soft/
安装FastDFS
-
下载安装包
https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz -
上传到服务器上并解压(解压到/data/soft目录下)
tar -zxvf V5.11.tar.gz -C /data/soft
-
进入解压后的目录,编译源码,安装
cd /data/soft/fastdfs-5.11 #进入解压后的路径 ./make.sh #编译 ./make.sh install #安装
-
查看可执行命令
ls -la /usr/bin/fdfs*
这时可以看到有/usr/bin/fdfs_storaged和/usr/bin/fdfs_trackerd命令
配置Tracker服务并启动
-
进入/etc/fdfs目录,创建配置文件
cp tracker.conf.sample tracker.conf
-
创建目录/data/base/fastdfs/tracker,并修改配置文件相关参数
base_path=/data/base/fastdfs/tracker
port=22122
http.server_port=80 #因为http使用nginx,所以要与其端口一致 -
启动tracker(支持start|stop|restart):
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
-
查看日志(tracker.log文件,在base_path路径下),确认启动正常
-
查看服务及端口
netstat -apn|grep fdfs
配置Storage服务并启动
-
进入/etc/fdfs目录,创建配置文件
cp storage.conf.sample storage.conf
-
创建目录/data/base/fastdfs/storage,并修改配置文件相关参数
tracker_server=192.168.142.155:22122 #配置该storage监听的tracker的ip和port
base_path=/data/base/fastdfs/storage
store_path0=/data/base/fastdfs/storage
port=23000
group_name=group1 #默认组名
store_path_count=1 #存储路径个数,需要和store_path个数匹配 -
启动storage(支持start|stop|restart)
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
-
查看日志(storaged.log文件,在base_path路径下),确认启动正常
-
查看服务及端口
netstat -apn|grep fdfs
-
查看tracker与storage是否成功绑定
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
加载fastdfs-nginx-module模块到Nginx
-
打开配置文件
/data/soft/fastdfs-nginx-module-1.20/src/config -
修改配置
ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" -
进入nginx的安装路径:
/data/soft/nginx-1.9.9 -
加载fastdfs-nginx-module模块到nginx:
./configure --prefix=/usr/local/nginx --add-module=/data/soft/fastdfs-nginx-module-1.20/src
-
编译并安装nginx
make make install
配置Fast_DFS的mod_fastdfs
-
拷贝配置文件
cp /data/soft/fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs
-
修改配置文件/etc/fdfs/mod_fastdfs.conf
base_path=/data/base/fastdfs
tracker_server=192.168.142.154:22122 #tracker的地址
url_have_group_name=true #url是否包含group名称
storage_server_port=23000 #需要和storage配置的相同
store_path_count=1 #存储路径个数,需要和store_path个数匹配
store_path0=/data/base/fastdfs/storage #文件存储的位置 -
拷贝文件http.conf和mime.types
cp /data/soft/fastdfs-5.11/conf/http.conf /etc/fdfs cp /data/soft/fastdfs-5.11/conf/mime.types /etc/fdfs
配置Nginx
-
打开配置文件
/usr/local/nginx/conf/nginx.conf -
修改配置
http{ ... server{ ... location ~/M00{ root /data/soft/fastdfs-5.11/storage/data; ngx_fastdfs_module; } ... } ... }
启动并验证Nginx
-
启动
cd /usr/local/nginx/sbin ./nginx
-
验证
./nginx -V
通过浏览器访问:http://192.168.142.155/,显示nginx的欢迎页
配置FastDFS客户端
- 进入/etc/fdfs目录,创建配置文件
cp client.conf.sample client.conf
- 修改配置文件client.conf
base_path=/data/base/fastdfs/
tracker_server=192.168.142.155:22122
验证FastDFS
-
通过以上步骤:Tracker,Storage,Nginx服务均已正常启动。现在通过客户端向FastDFS上传个文件,通过浏览器查看文件内容做验证。
-
新建文件/data/test.txt,内容为Hello FastDFS
-
执行上传指令
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/test.txt
-
记下上传成功后的路径
-
通过浏览器访问
http://192.168.142.155/group1/M00/00/00/wKiOm16fyWaAF8hzAAAADiRoSXo725.txt
至此,恭喜FastDFS已成功搭建!!!
常见问题
-
安装libfastcommon,执行./make.sh 报错。原因:缺少gcc编译器
-
安装FastDFS,执行执行./make.sh 报错。原因:缺少perl环境
-
安装FastDFS,执行执行./make.sh 报错。
原因:若是编译失败后,再次编译,则需要先清除之前的编译环境:./make.sh clean
-
编译nginx报错
原因:没有修改配置文件/data/soft/fastdfs-nginx-module-1.20/src/config