一、FastDFS介绍
FastDFS是一个开源的轻量级分布式文件系统。它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。
FastDFS 系统有三个角色:
- 跟踪服务器(Tracker Server):跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
- 存储服务器(Storage Server):存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份
- 客户端(Client):上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
二、FastDFS安装
- 拉取镜像
docker pull season/fastdfs:1.2
- 创建所需目录
mkdir -p /opt/fastdfs/tracker/data
mkdir -p /opt/fastdfs/storage/data
mkdir -p /opt/fastdfs/storage/path
mkdir -p /opt/fastdfs/nginx/
- 创建trakcer容器(跟踪服务器容器)
docker run -d --name tracker -p 22122:22122 \
--restart=always --net host \
-v /opt/fastdfs/tracker/data:/fastdfs/tracker/data \
season/fastdfs:1.2 tracker
- 创建storage容器(存储服务器容器)
docker run -d --name storage \
--restart=always --net host \
-v /opt/fastdfs/storage/path:/fastdfs/store_path \
-e TRACKER_SERVER="192.168.1.22:22122" \
season/fastdfs:1.2 storage
- 修改client.conf配置文件
将client.conf 配置文件复制出来,在宿主机修改完再粘贴回去。
修改为自己的ip
docker cp tracker:/etc/fdfs/client.conf /opt/fastdfs/tracker/
docker cp /opt/fastdfs/tracker/client.conf tracker:/etc/fdfs
- 配置Nginx
将storage容器中的nginx配置文件复制出来。
docker cp storage:/etc/nginx/conf/nginx.conf /opt/fastdfs/nginx/
修改nginx中的配置
location / {
root /fastdfs/store_path/data;
ngx_fastdfs_module;
}
- 启动nginx
docker run -id --name fastdfs_nginx \
--restart=always \
-v /opt/fastdfs/storage/path:/fastdfs/store_path \
-v /opt/fastdfs/nginx/nginx.conf:/etc/nginx/conf/nginx.conf \
-p 8081:80 \
-e TRACKER_SERVER=192.168.1.22:22122 \
season/fastdfs:1.2 nginx
8.测试
docker exec -it tracker bash
echo "test" > test.txt ------------创建一个 txt 文件
fdfs_upload_file /etc/fdfs/client.conf test.txt -----上传
如出现
执行
mkdir -p /home/yuqing/fastdfs
再执行上传。
打开浏览器