c4rt1y

分布式FastDFS环境搭建

0x01 FastDFS介绍

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

0x02 环境介绍

#centos7服务器1台
master 10.10.10.20

#安装gcc和prel
yum install gcc perl pcre-devel openssl openssl-devel unzip

#关闭firewalld
systemctl stop firewalld.service
systemctl disable firewalld.service

#关闭selinux
sed -i 's:SELINUX=enforcing:SELINUX=disabled:g' /etc/selinux/config

#重新启动电脑,使用setenforce 0无效
reboot

0x03 环境安装

##master和node01上同时安装nginx和FastDFS
#下载
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
#解压
tar -zxf V1.0.7.tar.gz
#编译
cd libfastcommon-1.0.7 && ./make.sh  && ./make.sh install

#下载
wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
#解压
tar  zxf V5.05.tar.gz
#编译
cd fastdfs-5.05 && ./make.sh && ./make.sh install

#拷贝
cp  /etc/fdfs/tracker.conf.sample  /etc/fdfs/tracker.conf
#设置配置文件
vi /etc/fdfs/tracker.conf
base_path=/data/fastdfs
http.server_port=80

#设置文路径
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

#创建文件夹(否则会报错)
mkdir /data/fastdfs
chmod -R 777 /data/fastdfs/

#启动
/etc/init.d/fdfs_trackerd start

#查看是否开启22122端口
ss -unltp|grep fdfs

#拷贝
cp  /etc/fdfs/storage.conf.sample  /etc/fdfs/storage.conf
#设置配置文件
vi /etc/fdfs/storage.conf
base_path=/data/fastdfs/storage
store_path0=/data/fastdfs/storage
tracker_server=10.10.10.20:22122

#设置软连接
ln -s /usr/bin/fdfs_storaged /usr/local/bin
#创建文件夹
mkdir -p /data/fastdfs/storage

#启动fdfs_storaged
/etc/init.d/fdfs_storaged start

#测试(出现active就ok)
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

install_fdfs_ok

#拷贝上传页面
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
#编辑上传页面
vi  /etc/fdfs/client.conf
base_path=/data/fastdfs/
tracker_server=10.10.10.20:22122

#测试上传
echo "this is a test" > test
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test 

fdfs_upload

#提示上路路径,但是我们没有搭建服务器,所以无法访问,查看storage,发现fdfs的文件是hash存放

fdfs_file

#搭建下载服务器 
#下载nginx
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
#解压
tar zxf nginx-1.10.1.tar.gz

#下载fastdfs-nginx-module v1.15 [这里记住,这个版本需要小心,我测试了最新版本失败了,然后找了老的版本就oK了]
wget https://10gbps-io.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1.16.tar.gz
#解压
unzip master.zip

#编译安装
cd nginx-1.10.1 && ./configure --prefix=/usr/local/nginx --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module  --with-pcre --add-module=/root/fastdfs-nginx-module-master/src/ 
make && make install

#查看是否安装成功
/usr/local/nginx/sbin/nginx -V

nginx

#配置nginx与fastdfs的模块
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

#配置nginx与fastdfs的模块
vi /etc/fdfs/mod_fastdfs.conf
tracker_server=10.10.10.20:22122
url_have_group_name = true
store_path0=/data/fastdfs/storage

#配置nginx与fastdfs的模块
cp  /root/fastdfs-5.05/conf/anti-steal.jpg /etc/fdfs/
cp  /root/fastdfs-5.05/conf/http.conf /etc/fdfs/
cp  /root/fastdfs-5.05/conf/mime.types /etc/fdfs/

#在server里面设置新的location
vi /usr/local/nginx/conf/nginx.conf
location /group1/M00 {
    root /data/fastdfs/storage/;
    ngx_fastdfs_module;
}

#创建文件夹和软连接
mkdir /data/fastdfs/storage/data/group1
ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/group1/M00

#重启nginx
/usr/local/nginx/sbin/nginx -s reload

download_png

0x04 资料来源

http://blog.mayongfa.cn/193.html
http://blog.mayongfa.cn/192.html
http://caibird.blog.51cto.com/1403570/1704953
http://www.ttlsa.com/fastdfs/fastdfs-nginx-module-download/
GoTop