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
这个时候已经能成功访问。
评论区