【Fastdfs】通过 docker 快速搭建集群 fastdfs 环境
1.镜像构建
构建新的镜像/使用我的镜像也行
docker build -t registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest .
docker push registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest
2.架构
3.示例
搭建集群
服务器
0.0.0.103 nginx,tracker1,storage01,storage02
0.0.0.104 tracker2,storage01,storage02
创建文件夹(每台服务器)
mkdir storage01 storage02 tracker01 tracker02
获取配置文件(每台服务器)
docker run -d --name tracker-config registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest sh tracker.sh
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/tracker01/conf
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/tracker02/conf
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/storage01/conf
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/storage02/conf
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/storage03/conf
docker cp tracker-config:/etc/fdfs /home/docker/fastDFS/storage04/conf
docker rm -f tracker-config
安装tracker
#tracker01(103)
docker run -d --name tracker-22121 \
--net=host \
--restart=always \
--privileged=true \
-e TRACKER_PORT=22121 \
-v /home/docker/fastDFS/tracker01/data:/home/yuqing/fastdfs \
-v /home/docker/fastDFS/tracker01/conf:/etc/fdfs \
registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest sh tracker.sh
#tracker02(104)
docker run -d --name tracker-22122 \
--net=host \
--restart=always \
--privileged=true \
-e TRACKER_PORT=22122 \
-v /home/docker/fastDFS/tracker02/data:/home/yuqing/fastdfs \
-v /home/docker/fastDFS/tracker02/conf:/etc/fdfs \
registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest sh tracker.sh
安装storage
#storage01(103,104)
docker run -d --name storage-23001 \
--net=host \
--restart=always \
--privileged=true \
-v /home/docker/fastDFS/storage01/data:/home/yuqing/fastdfs \
-v /home/docker/fastDFS/storage01/conf:/etc/fdfs \
-e STORAGE_PORT=23001 \
-e TRACKER_SERVER=192.168.56.103:22121,192.168.56.104:22122 \
-e GROUP_COUNT=2 \
-e HTTP_SERVER_PORT=8081 \
-e GROUP_NAME=group1 \
-e URL_HAVE_GROUP_NAME=true \
registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest sh storage.sh
#storage02(103,104)
docker run -d --name storage-23002 \
--net=host \
--restart=always \
--privileged=true \
-v /home/docker/fastDFS/storage02/data:/home/yuqing/fastdfs \
-v /home/docker/fastDFS/storage02/conf:/etc/fdfs \
-e STORAGE_PORT=23002 \
-e TRACKER_SERVER=192.168.56.103:22121,192.168.56.104:22122 \
-e GROUP_COUNT=2 \
-e HTTP_SERVER_PORT=8082 \
-e GROUP_NAME=group2 \
-e URL_HAVE_GROUP_NAME=true \
registry.cn-hangzhou.aliyuncs.com/hbsky/fastdfs:latest sh storage.sh
注意:同一个组在陪同服务器部署,必须端口号一致
搭建nginx并修改配置文件
upstream fdfs_group01 {
server 192.168.56.103:8081 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.56.104:8081 weight=1 max_fails=2 fail_timeout=30s;
}
upstream fdfs_group02 {
server 192.168.56.103:8082 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.56.104:8082 weight=1 max_fails=2 fail_timeout=30s;
}
location /group1{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group01;
expires 30d;
}
location /group2{
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_pass http://fdfs_group02;
expires 30d;
}
常见问题总结
- 同一组stortage 的端口必须一致,不然只能启动一台
- 同组服务器文件不同步 https://blog.csdn.net/ever_siyan/article/details/88866690[转载]