# FastDFS搭建与测试

作者:dakewong 黄大可

一个tracker和一个storage
tracker和storage公共配置

  • 1.安装yum install make cmake gcc gcc-c++
    # FastDFS搭建与测试

  • 2./usr/local新建文件夹fast

  • 3.解压libfastcommon-master.zip
    unzip libfastcommon-master.zip
    # FastDFS搭建与测试

  • 4.进入libfastcommon-master 编译和安装
    libfastcommon-master
    编译: ./make.sh
    # FastDFS搭建与测试安装: ./make.sh install
    # FastDFS搭建与测试

  • 5.进行软件创建.fastDFS主程序设置的目录为/usr/local/lib/,所以我们需要创建/usr/lib64/下的一些核心执行程序的软连接文件.
    命令:cd /usr/local/lib/
    # FastDFS搭建与测试命令: 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
    # FastDFS搭建与测试
    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
    # FastDFS搭建与测试

  • 2)修改tracker.conf文件
    命令:vim /etc/fdfs/tracker.conf
    如下图所示:我们暂时修改配置文件里的base_path即可
    # FastDFS搭建与测试# FastDFS搭建与测试

  • 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)重启跟踪器
    如图所示:
    # FastDFS搭建与测试目录命令: 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要先启动
    # FastDFS搭建与测试

  • 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
    # FastDFS搭建与测试

  • 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 ,里面什么都没有
    # FastDFS搭建与测试

  • 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:
    # FastDFS搭建与测试

  • 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包进行整合.
    # FastDFS搭建与测试将其解压到/usr/local/fast/
    tar -zxvf /usr/local/dakwong_data/fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fast/
    # FastDFS搭建与测试

  • 3.进入目录:cd /usr/local/fast/fastdfs-nginx-module/src/
    # FastDFS搭建与测试

  • 4.编辑配置文件config
    命令:vim /usr/local/fast/fastdfs-nginx-module/src/config
    修改内容:去掉下图中的local文件层次
    # FastDFS搭建与测试修改完毕为:
    # FastDFS搭建与测试

  • 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/目录中.如图所示:
    # FastDFS搭建与测试copy命令:cp /usr/local/fast/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

  • 7.进行修改 /etc/fdfs目录下,复制过来的mod_fastdfs.conf文件
    # FastDFS搭建与测试
    命令: 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/目录如下:
    # FastDFS搭建与测试
    命令: 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
    修改配置内容为:
    # FastDFS搭建与测试
    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
# FastDFS搭建与测试
group1/M00/00/00/wKjqh1vR2K2ARi0JAAKYhLBfKOw134.jpg
group1/M00/00/00/wKjqh1vR2qmAWqlvAAXowFzys18530.png
浏览器打开:
http://192.168.234.132:8888/group1/M00/00/00/wKjqh1vR2K2ARi0JAAKYhLBfKOw134.jpg