# FastDFS搭建与测试
作者:dakewong 黄大可
一个tracker和一个storage
tracker和storage公共配置
-
1.安装yum install make cmake gcc gcc-c++
-
2./usr/local新建文件夹fast
-
3.解压libfastcommon-master.zip
unzip libfastcommon-master.zip
-
4.进入libfastcommon-master 编译和安装
libfastcommon-master
编译: ./make.sh安装:
./make.sh install
-
5.进行软件创建.fastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件.
命令:cd /usr/local/lib/
命令: ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
命令: ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
命令: ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
命令: ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so -
6.安装FastDFS
1)将FastDFS_v5.5.tar.gz解压到/usr/local/fast
命令:tar -zxvf FastDFS_v5.05.tar.gz
2)安装编译
命令:cd /usr/local/fast/FastDFS
命令:./make.sh
命令:./make.sh install
3)因为FastDFS服务脚本设置的bin目录为/usr/local/bin下,但实际我们安装在了/usr/bin/下面,所以我们需要修改FastDFS配置文件中的路径,也就是需要修改两个配置文件:
命令:vim /etc/init.d/fdfs_storaged
进行全局替换命令:%s+/usr/local/bin+/usr/bin
命令:vim .etc/init.d/fdfs_trackerd
进行全局替换命令:%s+/usr/local/bin+/usr/bin
Tracker配置
配置跟踪器(192.168.234.131节点)
-
1)进入 cd /etc/fdfs/目录下配置跟踪器文件(注意是192.168.234.131节点),把trackerconf.sample文件进行copy一份,去修改tracker.conf
-
2)修改tracker.conf文件
命令:vim /etc/fdfs/tracker.conf
如下图所示:我们暂时修改配置文件里的base_path即可 -
3)最后我们一定要创建之前定义好目录(也就是/fastdfs/tracker)
命令:mkdir -p /fastdfs/tracker
-
4)学习时可以不用考虑防火墙的问题
vim /etc/sysconfig/iptables
添加:-A INPUT -m state –state NEW -m tcp -p tcp –dport 22122 -j ACCEPT
重启:
service iptables restart
-
5)重启跟踪器
如图所示:目录命令:
cd /fastdfs/tracker/ && ll
启动tracker命令:/etc/init.d/fdfs_trackerd start
查看进程命令:ps -el |grep fdfs
停止tracker命令:/etc/init.d/fdfs_trackerd stop
-
6)可以设置开机启动跟踪(一般生产环境需要开机启动一些服务,如:keepalived,linux,tomcat等等)
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_trackerd start
Storage配置
配置FastDFS存储(192.168.234.132)
-
1).进入文件目录: cd /etc/fdfs/,进行copy storage文件一份
命令:cd /etc/fdfs/
命令:cp storage.conf.sample storage.conf
-
2).修改storage.conf文件
命令:vim /etc/fdfs/storage.conf
修改内容:base_path=/fastdfs/storage
store_path0=/fastdfs/storage
tracker_server=192.168.234.131:22122
http.server_port=8888
-
3)创建存储目录:
mkdir -p /fastdfs/storage
-
4)打开防火墙:
命令:vim /etc/sysconfig/iptables
添加:-A INPUT -m state --state NEW -m tcp -p tcp –dport 23000 -j ACCEPT
重启:service iptables restart
-
5)启动存储(storage)
命令:/etc/init.d/fdfs_storaged start
(关闭/etc/init.d/fdfs_storaged stop)
(初次启动成功后会在/fastdfs/storage/目录下创建date,log目录)
storage启动前tracker要先启动 -
6).同理,也可以设置开机启动存储器(一般生产环境需要开机启动一些服务,如keepalived,linux,tomcat等等)
命令:vim /etc/rc.d/rc.local
加入配置:/etc/init.d/fdfs_storage start
测试环境
-
1)我们先使用命令上传一个文件.注意:是在tracker(跟踪器)中上传.
首先我们再跟踪器192.168.234.131里copy一份client.conf文件
命令:cd /etc/fdfs/
命令:cp client.conf.sample client.conf
-
2).编辑client.conf文件
命令:vim /etc/fdfs/client.conf
修改内容:base_path=/fastdfs/tracker
tracker_server=192.168.234.131:22122
-
3).我们找到命令的脚本位置,并且使用命令,进行文件的上传:
命令:cd /usr/bin/
命令:ls |grep fdfs
-
4).使用命令fdfs_upload_file进行上传操作:
首先,我们先看一下存储器192.168.234.132,进入到cd /fastdfs/storage/data下,再进入00文件夹下,发现00文件夹下还有一堆文件夹,然后继续进入00文件夹下,最终我们所进入的文件夹为:/fastdfs/storage/data/00/00 ,里面什么都没有 -
5)然后,我们进行上传操作,比如把之前/usr/local/dakewong_data/文件夹下的某个文件上传到FastDFS系统中.在跟踪器192.168.234.131中上传,命令如下:
命令/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /usr/local/dakewong_data/FastDFS_v5.05.tar.gz:
-
6)最后我们发现,命令执行完毕后,返回一个group1/M00/00/00/wKjqhFvQxPCAfgJ3AAVFOL7FJU4.tar.gz的id,其实就是返回当前所上传的文件在存储器192.168.234.131中的哪一个组,哪一个目录位置,所以我们查看存储器的/fastdfs/storage/data/00/00文件夹位置,发现一家存在了刚刚上传的文件,到此位置,我们的测试上传文件已经ok了,如下:
(到此,tracker和storage配置到此结束)
Nginx配置(Storage上操作192.168.234.132)
安装nginx前安装:yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
FastDFS与Nginx整合
-
1.首先storage机器必须先装nginx
-
2.然后我们再存储节点上192.168.234.132安装fastdfs-nginx-module_v1…16.tar.gz包进行整合.
将其解压到/usr/local/fast/
tar -zxvf /usr/local/dakwong_data/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
-
3.进入目录:
cd /usr/local/fast/fastdfs-nginx-module/src/
-
4.编辑配置文件config
命令:vim /usr/local/fast/fastdfs-nginx-module/src/config
修改内容:去掉下图中的local文件层次修改完毕为:
-
5.FastDFS与Nginx进行集成
首先把之前nginx进行删除
目录命令:cd /usr/local/
删除命令:rm -rf nginx
(nginx安装编译make&&make install时生成的nginx文件夹.刚刚安装nginx的话先不make&&make install)
进入到nginx目录:cd nginx nginx-1.10
加入模块命令:./configure --add-module=/usr/local/fast/fastdfs-nginx-module/src/
重新编译命令:make && make install
-
6.复制fastdfs-nginx-module中的配置文件,到/etc/fdfs/目录中.如图所示:
copy命令:
cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
-
7.进行修改 /etc/fdfs目录下,复制过来的mod_fastdfs.conf文件
命令:vim /etc/fdfs/mod_fastdfs.conf
修改内容:比如连接超时时间,跟踪器路径配置,url的group配置(按需要修改)connect_timeout=10
tracker_server=192.168.234.131:22122
url_have_group_name = true
store_path0=/fastdfs/storage
-
8.复制FastDFS里的2个文件,到/etc/fdfs/目录如下:
命令:cd /usr/local/fast/FastDFS/conf
Copy,命令:cp http.conf mime.types /etc/fdfs/
-
9.创建一个软连接,在/fastdfs/storage文件存储目录下创建软连接,将其链接到实际存放数据的目录.
命令:ln -s /fastdfs/storage/data/ /fastdfs/storage/data/M00
-
10.修改nginx配置文件,如图所示:
命令:cd /usr/local/nginx/conf
命令:vim nginx.conf
修改配置内容为:listen 8888;
server_name localhost;
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
注意:nginx里的端口要和上面第8步修改storage.conf的端口一致,也就是(http.server_port=8888) -
11.最后检查防火墙,然后我们启动nginx服务
/usr/local/nginx/sbin/nginx
测试:
Tracker上传文件,查看storage
group1/M00/00/00/wKjqh1vR2K2ARi0JAAKYhLBfKOw134.jpg
group1/M00/00/00/wKjqh1vR2qmAWqlvAAXowFzys18530.png
浏览器打开:
http://192.168.234.132:8888/group1/M00/00/00/wKjqh1vR2K2ARi0JAAKYhLBfKOw134.jpg