搭建单机版FastDFS分布式文件存储系统

一、准备工作

1、下载FastDFS安装包和依赖包

https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43

https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06

https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22

注:可以使用window浏览器(下载后需要上传到服务器上),也可以使用linux的curl命令

bash 复制代码
curl -o libfastcommon-1.0.43.tar.gz https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43
curl -o fastdfs-6.06.tar.gz https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06
curl -o fastdfs-nginx-module-1.22.tar.gz https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22

2、下载nginx,可以结合fastdfs-nginx-module插件,在浏览器上访问文件

nginx: download页面

注:也可以使用curl命令直接下载到linux服务器上,这里使用的nginx版本是1.22

bash 复制代码
curl -O http://nginx.org/download/nginx-1.22.1.tar.gz 

3、在/usr/local目录下创建fastdfs文件夹,并将下载的文件解压到该目录下,删除压缩包(减少存储占用,推荐)。

bash 复制代码
mkdir /usr/local/fastdfs

tar -zxvf fastdfs-6.06.tar.gz -C /usr/local/fastdfs
tar -zxvf fastdfs-nginx-module-1.22.tar.gz -C /usr/local/fastdfs
tar -zxvf libfastcommon-1.0.43.tar.gz -C /usr/local/fastdfs
tar -zxvf nginx-1.22.1.tar.gz -C /usr/local/fastdfs

rm -rf fastdfs-6.06.tar.gz fastdfs-nginx-module-1.22.tar.gz libfastcommon-1.0.43.tar.gz nginx-1.22.1.tar.gz

4、安装依赖,如果linux环境中有perl,则无需安装,否者需要安装

bash 复制代码
yum -y install gcc-c++ libevent pcre pcre-devel zlib zlib-devel openssl openssl-devel perl

二、安装fastdfs的依赖包 libfastcommon

1、进入/usr/local/fastdfs/libfastcommon-1.0.43目录下,执行编译安装

bash 复制代码
./make.sh # 编译
./make.sh install # 安装

三、安装fastdfs包

1、进入到/usr/local/fastdfs/fastdfs-6.06目录下,执行编译安装

bash 复制代码
./make.sh # 编译
./make.sh install # 安装

2、执行编译安装命令之后,如果不报错的话,软件会被安装到**/et/fdfs** 目录下,将/usr/local/fastdfs/fastdfs-6.06/conf目录下的所有文件复制到**/et/fdfs**目录下

bash 复制代码
cp /usr/local/fastdfs/fastdfs-6.06/conf/* /et/fdfs

3、创建tracker文件夹(存储路径使用)

bash 复制代码
mkdir -p /home/fastdfs/tracker

4、进入到**/et/fdfs**目录下修改tracker.conf文件

修改前:

22 # the base path to store data and log files

23 base_path = /home/yuqing/fastdfs

修改后:

22 # the base path to store data and log files

23 base_path = /home/fastdfs/tracker

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

bash 复制代码
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

6、创建storage文件夹

bash 复制代码
mkdir -p /home/fastdfs/storage

7、进入到**/et/fdfs**目录下修改storage.conf文件

修改前:

48 # eg. the disk free space should > 50GB

49 base_path = /home/yuqing/fastdfs # 默认存储路径


127 # the base_path should be independent (different) of the store paths

128

129 store_path0 = /home/yuqing/fastdfs # 默认存储路径


143 # another eg.: 192.168.1.10,172.17.4.21:22122

144

145 tracker_server = 192.168.209.121:22122

146 tracker_server = 192.168.209.122:22122

修改后:

48 # eg. the disk free space should > 50GB

49 base_path = /home/fastdfs/storage


127 # the base_path should be independent (different) of the store paths

128

129 store_path0 = /home/fastdfs/storage


143 # another eg.: 192.168.1.10,172.17.4.21:22122

144

145 tracker_server = 本地IP:22122

146 tracker_server = 本地IP:22122

8、启动storage服务(存储器)

bash 复制代码
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

9、创建client文件夹(客户端)

bash 复制代码
mkdir -p /home/fastdfs/client/

10、进入到**/et/fdfs**目录下修改client.conf文件

修改前:

10 # the base path to store log files

11 base_path = /home/yuqing/fastdfs


20 # another eg.: 192.168.1.10,172.17.4.21:22122

21

22 tracker_server = 192.168.0.196:22122

23 tracker_server = 192.168.0.197:22122

修改后:

the base path to store log files

base_path = /home/fastdfs/client


another eg.: 192.168.1.10,172.17.4.21:22122

tracker_server = 本地IP:22122

#tracker_server = 192.168.0.197:22122

11、测试系统是否可用

bash 复制代码
fdfs_test /etc/fdfs/client.conf upload storage.conf 

四,安装并配置nginx,(可浏览器访问)

1、进入到 /usr/local/fastdfs/nginx-1.22.1文件下

bash 复制代码
#配置nginx --prefix 安装目录,--with-http_ssl_module 使用ssl模块,--add-module 使用nginx插件
 ./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src

2、编译并安装nginx

bash 复制代码
make && make install

3、nginx安装目录/usr/local/nginx

4、配置nginx.conf文件

5、启动nginx,并访问浏览器,当我们访问文件地址的时候,会直接下载

相关推荐
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
荣--2 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森2 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜3 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10153 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB4 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao4 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3105 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode5 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏