FastDFS集群部署
所需组件安装
安装所需组件:
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y


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

下载软件
Github地址:https://github.com/happyfish100
分别下载fastdfs、fastdfs-nginx-module、libfastcommon
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

安装Libfastcommon
Libfastcommon解压
[root@10-1-14-144 software]# unzip V1.0.39.zip

进入目录

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

创建连接
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


部署FastDFS
FastDFS解压
[root@10-1-14-144 software]# unzip V5.11.zip

进入目录
[root@10-1-14-144 software]#cd fastdfs-5.11
编译安装
[root@10-1-14-144 fastdfs-5.11]# ./make.sh && ./make.sh install

如果没有报错那么就成功了。安装log中会提示FastDFS安装到了/etc/fdfs目录下。进入此目录: cd /etc/fdfs。成功后查看安装目录:
[root@10-1-14-142 fastdfs-5.11]# ll /etc/fdfs

生成配置文件
需要把这三个示例文件复制一份,去掉.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

部署tracker
创建tracker工作目录
[root@10-1-14-142 fdfs]# mkdir –p /opt/fdfs_tracker
配置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
启动tracker
[root@10-1-14-144 fdfs]# service fdfs_trackerd start

加入开机启动项
[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


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

配置storage

修改以下四行
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

启动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


校验整合
到这里,fastdfs的东西都已安装完成,最后我们还要确定一下,storage是否都注册到了tracker中去。查看命令:
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf



功能测试
配置客户端
[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
模拟上传
先上传一张图片至服务器的/root目录下。

确认图片位置后,输入上传图片命令:
 /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

组名:ahFastDFS 
磁盘:M00 
目录:00/00 
文件名称:wKgBs11otfCAeebpAANAcF2yBXk596.jpg

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

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

安装依赖组件
[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

下载解压Nginx源码包
[root@192-168-1-179 software]# wget http://nginx.org/download/nginx-1.16.0.tar.gz

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

编译安装Nginx模块
解压后进入nginx目录编译安装nginx,并添加fastdfs-nginx-module:
./configure --prefix=/etc/nginx --add-module=/root/software/fastdfs-nginx-module-1.20/src

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

配置StorageNginx
新增Storage配置文件
[root@192-168-1-179 nginx-1.16.0]# vim /etc/nginx/conf.d/storage.conf

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

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

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

修改配置文件
修改如下:
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
修改完后的文件内容如下:

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

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

配置TrackerNginx
新增配置文件
[root@192-168-1-179 fdfs]# vim /etc/nginx/conf.d/tracker.conf

重启Nginx

Http测试
访问一下2.2.8.2中模拟上传文件返回的地址:
http://192.168.1.179:9991/ahFastDFS/M00/00/00/wKgBs11otfCAeebpAANAcF2yBXk596.jpg
这个时候已经能成功访问。

            
          
            
            
评论区