FastDFS是什么?我们这里可以看一下度娘的解释。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。我这里使用服务器环境是centos7
注意:FastDFS只能上传500MB的小文件
tracker:跟踪者,负责调度存储服务。
storage:用于文件存储。
client:调用tracker
第一步 安装相关工具
如果已经安装vim与wget可以跳过这一步
yum -y install vim wget unzip
-y :不经过询问直接同意所有操作
vim : linux上面一个好的文本编辑软件
wget : linux上传一个文件下载工具
第二步 安装相关依赖
yum install -y gcc-c++ perl
第三步 安装libfastcommon
大家可以直接到github上面找的到ibfastcommon。这里为了大家方便查找。我已经把把链接给大家整理好了。
happyfish100/libfastcommongithub.com/happyfish100/libfastcommon正在上传…重新上传取消
这里大家可以先下载到本地,然后再传至服务器上面。这里我使用的是xftp。具体操不在这里就不相信说了。
下载下来的是zip格式压缩包,然后,我们解压zip
unzip libfastcommon-master.zip
进入到刚刚解压的文件里面
cd libfastcommon-master/
进行编译安装
./make.sh && ./make.sh install
如上就是安装成功
第四步 安装FastDFS
同样这里我用的也是github上面的FastDFS。为此,我已经帮大家把相关的链接整理到下方了
happyfish100/fastdfsgithub.com/happyfish100/fastdfs正在上传…重新上传取消
这里可以使用像上面ibfastcommon一样的方式,先下载到自己的电脑上面,再上传至服务器。
下面我们先进行解压
unzip fastdfs-master.zip
编译安装
./make.sh && ./make.sh install
安装成功如上图
第五步 修改配置文件
切换到配置文件目录下
cd /etc/fdfs/
查看所有配置文件
使用ls命令就行了
去除所有的.sample后缀
mv client.conf.sample client.conf
mv storage.conf.sample storage.conf
mv storage_ids.conf.sample storage_ids.conf
mv tracker.conf.sample tracker.conf
我们再次使用ls命令查看
可以看到我们已经去除了所有的.sample后缀
下一步,创建文件夹,分别创建client,storage,tracker文件夹
mkdir -p /home/software/fastfdfs/fdfa/client
mkdir -p /home/software/fastfdfs/fdfa/storage
mkdir -p /home/software/fastfdfs/fdfa/tracker
下面我们开始配置文件修改,首先修改的是clietn.conf,使用vim编辑器进行文件的编辑
vim client.conf
使用 :set number 显示行数
修改第十行,确定日志文件文件日志,这里用我们刚刚创建client文件夹路径
base_path=base_path=/home/software/fastfdfs/fdfa/client
修改第14 行,tracker的地址与端口,这里我使用的是虚拟机,而且我的tracker等会和我的storage在同一台服务器启动,我的是192.168.223.19。大家这里根据实际情况修改
tracker_server=192.168.223.19:22122
这里大家大家记得保存修改
下面我们修改storage.conf。同上是用vim进行修改
修改第41行 storage基础路径,上面我们已经创建了这个目录
base_path=/home/software/fastfdfs/fdfa/storage
修改第110行,storage路径。storage.conf已经说了如果这个路径不存在,会依照base_path.为了不出意外,我们配置一下这个路径
store_path0=/home/software/fastfdfs/fdfa/storage
修改第119行 ,配置tracker的IP地址与端口。至于如何填写这个地址,上面配置client.conf的时候,我们就已经说过了。
tracker_server=192.168.223.19:22122
现在修改tracker.conf文件
修改第22行,修改tracker的基础路径。这个路径的文件夹我们刚刚在上面已经创建过了
base_path=/home/software/fastfdfs/fdfa/tracker
修改第54行 归属组设置
store_group=group1
第六步 启动tracker与storage
启动tracker
fdfs_trackerd /etc/fdfs/tracker.conf start
启动storage
fdfs_storaged /etc/fdfs/storage.conf start
测试是否启动成功,我们尝试上传文件。我的root文件夹下有一张图片
fdfs_test /etc/fdfs/client.conf upload /root/9d545aa4d2f1ffbecf5567ae71f4e4fb.jpg
上传成功如图所示
第七步 安装nginx访问图片
之前我写过一篇nginx安装与配置的文章。大家有兴趣的可以去阅读以下。这里我们安装的时候可能有所不同,为了大家可以结合fastdfs使用。我这里单独再说一下nginx的安装。
首先安装依赖
yum -y install gcc-c++ zlib-devel pcre-devel
下载nginx安装包
wget http://nginx.org/download/nginx-1.14.0.tar.gz
解压安装包
tar zxvf nginx-1.14.0.tar.gz
下载nginx的fastdfs模块,这里我已经帮大家把这个项目github地址整理好了。
happyfish100/fastdfs-nginx-modulegithub.com/happyfish100/fastdfs-nginx-module正在上传…重新上传取消
这里我们可以先下载到自己电脑上,再上传服务器。
进行解压
unzip fastdfs-nginx-module-master.zip
创建nginx安装目录
mkdir -p /home/software/nginx
切换到nginx压缩包的解压目录里面去
cd nginx-1.14.0
进行配置检测并且添加模块
./configure --prefix=/home/software/nginx --add-module=/home/software/fastdfs-nginx-module-master/src
--prefix : 我们刚刚创建的nginx的安装目录
--add-module:解压后模块所在目录,记得要加上src
成功
编译并安装
make && make install
复制配置文件至/etc/fdfs里面去
切换至fastdfs的解压包里面去
cd /home/software/fastfdfs/fastdfs-master
进行文件的复制
cp conf/http.conf /etc/fdfs/
cp conf/mime.types /etc/fdfs/
切换至fastdfs-nginx-module的解压目录下面
cd /home/software/fastdfs-nginx-module-master
进行配置文件的复制
cp src/mod_fastdfs.conf /etc/fdfs/
修改/etc/fdfs下面的mod_fastdfs.conf配置文件
vim /etc/fdfs/mod_fastdfs.conf
修改 40行,更改tracker的ip地址与端口
tracker_server=192.168.223.19:22122
修改53行 url地址中是否包含组名
url_have_group_name = true
修改62行 storage所在目录
store_path0=/home/software/fastfdfs/fdfa/storage
保存修改
进行nginx配置文件的修改,首先切换到nginx的安装目录下面
cd /home/software/nginx
进行nginx.conf的修改,找到44行,注释掉44 45行,下面添加一行
ngx_fastdfs_module;
启动nginx,切换到nginx安装目录下的sbin目录下面去,先进行配置文件的检验。如果配置检验没问题。再启动nginx
切换到sbin目录
cd /home/software/nginx/sbin/
配置文件检测
./nginx -t -c /home/software/nginx/conf/nginx.conf
显示 is ok没有任何问题,现在启动nginx
./nginx
依照上面的方式,我们上传一张图片。并进行访问
测试是否启动成功,我们尝试上传文件。我的root文件夹下有一张图片
fdfs_test /etc/fdfs/client.conf upload /root/9d545aa4d2f1ffbecf5567ae71f4e4fb.jpg
上传成功,访问下面的地址。我这里关闭了防火墙。如果我们的服务器有防火墙,记得打开80端口
我们访问地址,图片已经出来,说明我们可以正常访问。
第一步 规定storage与tracker服务器
这里我用的是虚拟机,我这里在四台虚拟机上面都安装了单节点的fastdfs。我的四台虚拟机的ip如下。
192.168.223.15 所属组:group1 角色:storage,tracker1
192.168.223.16 所属组:group1 角色:storage
192.168.223.17 所属组:group2 角色:storage,tracker2
192.168.223.18 所属组:group2 角色:storage
第二步 修改配置文件
由于FastDFS单节点使用的组都是group1.所以192.168.223.15这台机器上的配置不需要做任意修改。所以我们需要修改的地方其实是其他三台服务器。下面我会逐个说明如何改。
首先我们需要改的是192.168.223.16。由上面的分配我们可以知道。他们都是group1,所以我们只需要把tracker的ip指向192.168.223.15 详细的修改如下。首先我们需要进入到192.168.223.16的/etc/fdfs的目录下面。这一步我们做了很多遍。这里就不演示了。接下来进行文件的修改
修改client.conf 第14行
tracker_server=192.168.223.15:22122
修改 storage.conf 第119行
tracker_server=192.168.223.15:22122
修改 mod_fastdfs.conf 第40行
tracker_server=192.168.223.15:22122
接下修改的 192.168.223.17这个服务器。由上面的分配来看,它的归属组是group2。它的tracker是192.168.223.17。现在我们开始修改
修改client.conf 第14行
tracker_server=192.168.223.17:22122
修改 storage.conf 第11行
group_name=group2
修改第 119行
tracker_server=192.168.223.17:22122
修改 mod_fastdfs.conf 第40行
tracker_server=192.168.223.17:22122
修改第 47行
group_name=group2
ip为192.168.223.18 像 192.168.223.17一样修改。这样我们就完成了所有配置文件的修改
第三步 关闭,重启服务
首先我们关闭所有服务器的storage服务,tracker服务。首先查找进程然后关闭
ps -ef | grep fdfs
root后面的字段就是pid。由上面可以知道。我们的两个pid是53946,53967,现在我们把这两个进程kill掉
kill -9 53946
kill -9 53967
其他三台服务器也是这样做。
现在按照单节的方式启动。记住不是所有的服务器都要启动。storage与tracker。
192.168.223.15 启动storage与tracker
192.168.223.16 启动storage
192.168.223.17 启动storage与tracker
192.168.223.18 启动storage
重启nginx服务,启动方式,先进入到nginx安装目录下的sbin目录,执行重启命令
./nginx -s reload
第四步 测试
我们在192.168.223.16 上传一张图片,然后用192.168.223.15的ip访问。因为同一个组的storage会进行文件同步
这里可以看到上传后得到的url是192.168.223.15服务器上面的。我们用ip 192.168.223.16 与 192.168.223.15 都访问一遍
可见都是可以访问的到的。到此我们就成功的进行了FastDFS的搭建,大家如果在实际操作中遇到了什么问题,可在评论区里留言