由于项目功能中涉及到了图片以及文件上传的功能,需要同步pc端项目与手机端的图片、文件,因此搭建一个FastDFS。
FastDFS
fastdfs是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)、客户端(client)三部分组成。
跟踪器主要负责调度工作,在访问上起到负载均衡的作用。
存储节点负责存储文件,
主要解决海量数据存储问题,适合以中小文件(4KB<file_size<500MB)为载体的在线服务配置环境
centos7
tracker server: 10.173.X.X1 ,10.173.X.X2
storage server:10.173.X.X1 10.173.X.X3(group1)
storage server:10.173.X.X2 10.173.X.X4(group2)安装配置 【tracker server】
- 安装libfastcommon【它是安装fastdfs前的依赖】
安装所需依赖 :
yum -y install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel安装libfastcommon :
[访问 https://github.com/happyfish100/libfastcommon.,下载zip包解压后进入, 执行
./make.sh./make.sh installlibfastcommon.so默认安装到了/usr/lib64/libfastcommon.so,但fastdfs主程序设置的lib目录是/usr/lobal/lib,因此需要建立软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.soln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so- 安装fastdfs
进入fastdfs目录
./make.sh./make.sh installfastdfs配置文件解释:
| 文件名 | 功能 |
|---|---|
| tracker.conf | 负责均衡调度服务器配置文件 |
| client.conf | 客户端上传配置文件 |
| http.conf | http服务器配置文件 |
| storage.conf | 文件存储服务器配置文件 |
| mime.types | 文件类型配置文件 |
- 修改tracker server 的配置文件
安装成功后,在/etc/目录下生成fdfs目录,包含了fdfs配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf初始化文件夹目录 :
mkdir /opt/fastdfs_trackermkdir /opt/fastdfs_storagemkdir /opt/fastdfs_storage_datavi /etc/fdfs/tracker.conf
base_path=/opt/fastdfs_trackerstore_lookup=0这里为了做集群上传测试时能看到分别上传到其他节点,
store_group=group1这里将10.173.X.X1设置为group1,10.173.X.X2中的配置项设置为group2- 启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf查看是否启动成功(出现对应的fdfs端口号表示启动成功):
netstat -unlpt |grep fdfs
查看是否报错
cat /opt/fastdfs_tracker/logs/trackerd.log
以上启动了tracker,但并没有关联起来,由于X1和X2都是即作tracker和storage,所以初始化文件路径时已经做了storage的操作
4. 配置storage
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.confvim /etc/fdfs/storage.conf
group_name=group1当前的storage节点属于那个group
port=23000配置当前group的端口号,两个group要不一样,group2设置为23001
base_path=/opt/fastdfs_storage设置storage存放日志的路径
store_path=/opt/fastdfs_storage_data设置storage存储路径,若没有设置,则使用base_path。(该地址是文件存储地址,而不是日志存放地址)
tracker_server=10.173.X.X1:22122 tracker_server=10.173.X.X2:22122配置两个tracker的地址启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf查看是否启动
netstat -unlpt |grep fdfs
![]()
查看日志是否报错
cat /opt/fastdfs_storage/logs/storaged.logX3和X4只做storage节点,所以只配置storage.conf
vim /etc/fdfs/storage.conf
group_name=group2
port=23001
base_path=/opt/fastdfs_storage
store_path=/opt/fastfs_storage_data tracker_server=10.173.X.X1:22122 tracker_server=10.173.X.X2:22122查看集群状态:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf安装nginx,提供http的下载
fastdfs的http服务太弱,需要借助nginx来进行http访问的负载
下载fast-nginx-module 下载链接
- 配置fast-nginx-module
vim /fast-nginx-module/src/mod_fastdfs.conf
tracker_server:X1:22122
url_have_group_name = true
cp mod_fastdfs.conf /etc/fdfs/
store_path0 配置和storage.conf中一致vim /fast-nginx-module/src/config
将CORE_INCS和CORE_LIBS的路径和libfastcommon的路径保持一致
- 解压nginx后,进入nginx目录
./configure --prefix=/usr/local/nginx --add-module=/usr/local/fastdfs-nginx-module/src/
make && make install
- 解压nginx后,进入nginx目录
修改配置文件
vim /usr/local/nginx/conf/nginx.conf配置负载均衡的路径,最后一个location项

- 查看nginx配置,
nginx -V(需要将nginx配置到环境变量中)
出现–add-module…则表示模块已经配置好
将fastdfs-master中conf中的http.conf 和mime.types两个文件复制到/etc/fdfs下,否则启动nginx会报错
- 创建软链接,危了nginx能够访问存储路径的时候能直接访问到M00的数据
ln -s /opt/fastdfs_storage_data/data /opt/fastdfs_storage_data/data/M00- 启动nginx,
/usr/local/nginx/sbin/nginx - 查看日志,
cat /usr/loca/nginx/logs/error.log
PS:所有当作stroage的节点机器都必须启动nginx作为storage负载
- 测试
- 修改/etc/fdfs/client.conf
cp client.conf.sample client.confvim client.conf修改tracker server项- 可使用 /usr/bin/fdfs_test 进行测试上传、下载操作
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/123.txt- 会存放在M00/00/00,文件名做相应转换,我这里是
Cq0c212J8FiAZzB_AAAABFqC_Qg796.txt - 浏览器访问
http://10.173.X.X1/group1/M00/00/00/Cq0c212J8FiAZzB_AAAABFqC_Qg796.txt