侧边栏壁纸
博主头像
WinJay博主等级

博观而约取 厚积而薄发

  • 累计撰写 306 篇文章
  • 累计创建 165 个标签
  • 累计收到 1 条评论
隐藏侧边栏

FastDFS集群部署

WinJay
2019-04-29 / 0 评论 / 0 点赞 / 61 阅读 / 4,788 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-20,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

FastDFS集群部署

1.1 所需组件安装

安装所需组件:

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

image.png

image.png

1.2 建立软件目录

新建文件夹,用于存放下载的软件。

image.png

1.3 下载软件

Github地址:https://github.com/happyfish100

分别下载fastdfs、fastdfs-nginx-modulelibfastcommon

wget https://github.com/happyfish100/fastdfs/archive/V5.11.zip
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.zip
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/V1.20.zip

image.png

1.4 安装Libfastcommon

1.4.1 Libfastcommon解压

[root@10-1-14-144 software]# unzip V1.0.39.zip

image.png

1.4.2 进入目录

image.png

1.4.3 编译安装

[root@10-1-14-144 libfastcommon-1.0.39]# ./make.sh && ./make.sh install

image.png

1.4.4 创建连接

libfastcommon默认会被安装到/usr/lib64/libfastcommon.so但是FastDFS的主程序却在/usr/local/lib目录下
这个时候我们就要建立一个软链接了,实际上也相当于windows上的快捷方式。

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

image.pngimage.png

1.5 部署FastDFS

1.5.1 FastDFS解压

[root@10-1-14-144 software]# unzip V5.11.zip

image.png

1.5.2 进入目录

[root@10-1-14-144 software]#cd fastdfs-5.11

1.5.3 编译安装

[root@10-1-14-144 fastdfs-5.11]# ./make.sh && ./make.sh install

image.png

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。进入此目录: cd /etc/fdfs。成功后查看安装目录:

[root@10-1-14-142 fastdfs-5.11]# ll /etc/fdfs

image.png

1.5.4 生成配置文件

需要把这三个示例文件复制一份,去掉.sample

[root@10-1-14-142 fdfs]# cp client.conf.sample client.conf

[root@10-1-14-142 fdfs]# cp storage.conf.sample storage.conf

[root@10-1-14-142 fdfs]# cp tracker.conf.sample tracker.conf

image.png

1.6 部署tracker

1.6.1 创建tracker工作目录

[root@10-1-14-142 fdfs]# mkdir –p /opt/fdfs_tracker

1.6.2 配置tracker

[root@10-1-14-142 fdfs]# vim /etc/fdfs/tracker.conf

修改第8行与第22行

bind_addr=0.0.0.0

base_path=/opt/fdfs_tracker

1.6.3 启动tracker

[root@10-1-14-144 fdfs]# service fdfs_trackerd start

image.png

1.6.4 加入开机启动项

[root@10-1-14-144 fdfs]# echo "service fdfs_trackerd start" |tee -a /etc/rc.d/rc.local
[root@10-1-14-144 fdfs]# chmod +x /etc/rc.d/rc.local
[root@10-1-14-144 fdfs]# ll /etc/rc.d/rc.local 
-rwxr-xr-x. 1 root root 529 Jul 1 15:40 /etc/rc.d/rc.local

image.png
image.png

1.7 部署storage

1.7.1 创建storage工作目录

与tracker不同的是,由于storage还需要一个目录用来存储数据,所以另外多建两个目录fdfs_storage_data,fdfs_storage
image.png

1.1.7.2 配置storage

image.png

修改以下四行

11:group_name=ahFastDFS

41: base_path=/opt/fdfs_storage

109:store_path0=/opt/fdfs_storage_data

118: tracker_server= 192.168.1.179:22122

修改保存后创建软引用:

ln -s /usr/bin/fdfs_storaged /usr/local/bin

image.png

1.7.3 启动Storage

[root@192-168-1-179 fdfs]# service fdfs_storaged start

Starting fdfs_storaged (via systemctl):          [ OK ]

[root@192-168-1-179 fdfs]# echo "service fdfs_storaged start" |tee -a /etc/rc.d/rc.local

service fdfs_storaged start

image.pngimage.png

1.7.4 校验整合

到这里,fastdfs的东西都已安装完成,最后我们还要确定一下,storage是否都注册到了tracker中去。查看命令:

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

image.png
image.png
image.png

1.8 功能测试

1.8.1 配置客户端

[root@192-168-1-179 fdfs]# vim /etc/fdfs/client.conf

修改如下信息:

10:base_path=/opt/fdfs_tracker

14:tracker_server=192.168.1.179:22122

58:http.tracker_server_port=8080

1.8.2 模拟上传

先上传一张图片至服务器的/root目录下。

image.png

确认图片位置后,输入上传图片命令:

 /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/fdfs.jpg

# 成功后会返回图片的路径:
 [root@192-168-1-179 ~]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /root/fdfs.jpg

ahFastDFS/M00/00/00/wKgBs11otfCAeebpAANAcF2yBXk596.jpg

image.png

组名:ahFastDFS 

磁盘:M00 

目录:00/00 

文件名称:wKgBs11otfCAeebpAANAcF2yBXk596.jpg

image.png

可以看到刚才上传的图片已经经过处理存储在data目录下了。
实际文件存储路径下有创建好的多级目录。data下有256个1级目录,每级目录下又有256个2级子目录,总共65536个文件,新写的文件会以hash的方式被路由到其中某个子目录下,然后将文件数据直接作为一个本地文件存储到该目录中

1.9 FastDFS的Nginx模块安装

1.9.1 安装nginx

详见2.1

image.png

1.9.2 nginx-module解压

[root@192-168-1-179 software]# unzip V1.20.zip

image.png

1.9.3 安装依赖组件

[root@192-168-1-179 nginx-1.16.0]# yum -y install pcre pcre-devel && yum -y install zlib zlib-devel && yum -y install openssl openssl-devel

image.png

1.9.4 下载解压Nginx源码包

[root@192-168-1-179 software]# wget http://nginx.org/download/nginx-1.16.0.tar.gz

image.png

[root@192-168-1-179 software]# tar -zxvf nginx-1.16.0

image.png

1.9.5 编译安装Nginx模块

解压后进入nginx目录编译安装nginx,并添加fastdfs-nginx-module:

./configure --prefix=/etc/nginx --add-module=/root/software/fastdfs-nginx-module-1.20/src

image.png

[root@192-168-1-179 nginx-1.16.0]# make && make install

image.png

1.10 配置StorageNginx

1.10.1 新增Storage配置文件

[root@192-168-1-179 nginx-1.16.0]# vim /etc/nginx/conf.d/storage.conf

image.png

下图配置信息为使用80端口而非默认9991端口的配置信息。
image.png

1.10.2 拷贝文件

[root@192-168-1-179 conf]# cp http.conf mime.types /etc/fdfs/

image.png

[root@192-168-1-179 conf]# cp ../../fastdfs-nginx-module-1.20/src/mod_fastdfs.conf /etc/fdfs/

image.png

1.10.3 修改配置文件

修改如下:

10 base_path=/opt/fdfs_storage

40 tracker_server=192.168.1.179:22122

53 url_have_group_name = true

62 store_path0=/opt/fdfs_storage_data

113 group_count = 1

最后新增如下内容:

[group1]

group_name=ahFastDFS

storage_server_port=23000

store_path_count=1

store_path0=/opt/fdfs_storage_data

修改完后的文件内容如下:

image.png

1.10.4 创建连接

创建M00至storage存储目录的符号连接:
[root@192-168-1-179 fdfs]# ln -s /opt/fdfs_storage_data/data/ /opt/fdfs_storage_data/data/M00

image.png

1.10.5 启动Nginx

[root@192-168-1-179 fdfs]# systemctl restart nginx

image.png

1.11 配置TrackerNginx

1.11.1 新增配置文件

[root@192-168-1-179 fdfs]# vim /etc/nginx/conf.d/tracker.conf

image.png

1.11.2 重启Nginx

image.png

1.11.3 Http测试

访问一下2.2.8.2中模拟上传文件返回的地址:

http://192.168.1.179:9991/ahFastDFS/M00/00/00/wKgBs11otfCAeebpAANAcF2yBXk596.jpg

这个时候已经能成功访问。

image.png

0

评论区