夸克之书

  • 首页
  • 科普
  • 笔记
  • .NET/C#
  • 物联网
  • 算法
  • Linux
  • 树莓派
夸克之内,别有洞天
  1. 首页
  2. 默认
  3. 正文

单机Docker搭建FastDFS

2020-10-27 3098点热度 0人点赞 0条评论

最近项目开发为分模块开发,在项目开发过程中避免不了要使用文件上传,遂开发了一个通用的文件上传功能,将文件上传到专用的文件服务器当中。

FastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图片网站,视频网站等。

一、架构

FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。 存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。跟踪器和存储节点都可以由多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。

%title插图%num

简单概况来说就是,Tracker负责管理集群和实现集群。Storage实际保存文件。 Storage 分为多个组,每个组之间保存的文件是不同的,且每个组内部可以有多个成员,组成员内部保存的内容一致,组成员的地位也是一致的,没有主从的概念。

二、搭建

1、拉取镜像

docker pull delron/fastdfs

2、启动跟踪器(tracker)服务

docker run -d --restart=always 
--network=host 
--name tracker 
-v /data/fdfs/tracker:/var/fdfs 
delron/fastdfs tracker

Tracker容器默认端口是22122。
3、启动storage服务

docker run -d 
--network=host 
--name storage 
-e TRACKER_SERVER=192.168.23.30:22122 
-v /data/fdfs/storage:/var/fdfs 
-e GROUP_NAME=group1 
delron/fastdfs storage

需要注意的是,在启动storage命令中,需要将“192.168.23.30”这个IP地址修改为自己服务器的IP地址,由于我在内网搭建,所以IP地址为192.168..开头的。

Tracker和Storage启动后,将会把目录分别映射至“/data/fdfs/tracker”和“/data/fdfs/storage”,如有需要可以自行更改。

4、查看运行状态

%title插图%num

可以看到Tracker和Storage容器都已经启动完成。

5、测试
在测试之前,需要在防火墙和安全组开放三个端口。分别为:23000、22122和8888,其中23000被storage服务使用,22122被tracker服务使用,8888为nginx反向代理端口。
需要注意的是,如果系统安装了宝塔面板,宝塔面板默认使用的是8888端口,此时需要修改宝塔面板端口或者Storage的8888端口。
首先将要测试的文件通过ftp上传至文件夹“/data/fdfs/storage”,即映射到Storage容器的文件夹。我这里是1.jpg

%title插图%num

然后进入容器

docker exec -it storage bash

执行

cd /var/fdfs/
/usr/bin/fdfs_upload_file /etc/fdfs/client.conf 1.jpg

%title插图%num

其中1.jgp即为我们上传至 /data/fdfs/storage的1.jpg文件,然后在浏览器中输入“http://{你的IP地址}:{你的端口号}/group1/M00/00/00/wKgXHl-XeaqAYbbDAAWxl9vZtXk595.jpg”,就可以看到上传的照片啦。

%title插图%num

三、其它配置

1、配置nginx访问端口

上文提到,在实际使用过程中,很多情况下回用到8888端口,这里我就将原来的8888端口修改为不常用端口,避免冲突。

进入容器:

docker exec -it storage bash

编辑nginx默认端口

vi /usr/local/nginx/conf/nginx.conf

%title插图%num

编辑storage服务默认端口,我这里已经将8888修改为10001。

vi /etc/fdfs/storage.conf

%title插图%num

需要注意的是nginx的端口要和storage服务端口保持一致,然后重启容器即可。

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2020-12-13

管理员

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论
放松一下
https://www.quarkbook.com/wp-content/uploads/2021/05/凤凰传奇-海底(Live).flac
分类
  • .NET/C#
  • Linux
  • 树莓派
  • 物联网
  • 科普
  • 笔记
  • 算法
  • 默认
最新 热点 随机
最新 热点 随机
维持宇宙的四种“力量”——关于四大基本力 MinGW图形安装界面里面没有mingw32 make.exe解决办法 Windows Server 2022安装Intel I225-V/I226-V驱动 System.Text.Json与Newtonsoft.Json Json序列化与反序列化性能对比 R86S散热改造 Windows移除多余输入法'Unknown Locale (qaa-Latn)'
Windows Server 2022安装Intel I225-V/I226-V驱动MinGW图形安装界面里面没有mingw32 make.exe解决办法维持宇宙的四种“力量”——关于四大基本力
近期学习计划整理 .Net Core在Linux下操作图片报错 战地 Origin发生了些意料之外的事情解决方法 .NET Core EF提示“Unable to cast object of type 'System.Boolean' to type 'System.Int16'.” 极路由B70刷固件详细步骤 23种常见的设计模式(3):抽象工厂模式
最近评论
afirefish 发布于 4 个月前(11月28日) 非常感谢,非常棒!
》随缘《 发布于 4 个月前(11月20日) 最新【一键处理】方法: https://github.com/MrXhh/VSTools/rele...
管理员 发布于 9 个月前(06月22日) emmmm....服务器好一点???
wking 发布于 10 个月前(05月23日) 请问贵博客是怎么优化的,网页响应速度非常快。我博客同样的WordPress和kratos主题,但点一...
去月球 发布于 1 年前(01月17日) 如果使用CSI的摄像头应该怎么修改命令呢
书签
  • 打赏
  • 毒鸡汤
  • 米店
  • 金鱼直播间

COPYRIGHT © 2022 quarkbook.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备15036129号-9

登录
注册|忘记密码?