简介:FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size<500MB)为载体的在线服务。
本文以CentOS6.10 64位配合Git方式安装FastDFS,并集成Nginx模版完成测试及配置。
一、Git的安装流程:
1、检查系统是否安装了Git:
git --version
2、CentOS6.10上yum安装Git:
yum install -y git
3、检查Git是否安装成功:
git --version
参见:CentOS6.10上Yum方式安装Git教程(https://www.exception500.com/softwareinstall/30.html)
二、安装说明:
所有安装包存放位置 /usr/local/src
数据存储位置 /home/dfs/
提前安装编译环境:
yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
三、安装libfatscommon:
1、拉取文件ibfatscommon源码:
cd /usr/local/src
git clone https://github.com/happyfish100/libfastcommon.git --depth 1 #Git拉取文件
2、编译安装libfatscommon:
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
三、FastDFS的安装:
1、拉取文件FastDFS源码:
cd /usr/local/src
git clone https://github.com/happyfish100/fastdfs.git --depth 1 #Git拉取文件
2、编译安装FastDFS:
cd fastdfs/
./make.sh && ./make.sh install #编译安装
3、配置文件准备:
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
四、fastdfs-nginx-module的安装:
cd /usr/local/src
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
五、安装nginx:
1、下载nginx并解压:
cd /usr/local/src
wget http://mirrors.sohu.com/nginx/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/
2、添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install #编译安装
六、FastDFS单机部署配置:
1、配置tracker参数:
#服务器ip为 192.168.0.105
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs # 存储日志和数据的根目录
2、配置storage参数:
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=192.168.0.105:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
3、配置nginx参数:
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.0.105:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4、防火墙配置:
通在/etc/sysconfig/iptables文档中添加端口白名单,命令如下(编辑好后 esc->wq 保存退出):
vi /etc/sysconfig/iptables
#添加如下行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
添加好后重启防火墙,命令如下:
/etc/init.d/iptables restart
5、启动:
#启动tracker
/etc/init.d/fdfs_trackerd start
#启动storage
/etc/init.d/fdfs_storaged start
#启动nginx
/usr/local/nginx/sbin/nginx
6、上传测试:
安装好FastDFS后,进入/usr/bin/目录,使用命令:ls | grep fdfs,可以看到安装的执行文件:
fdfs_appender_test
fdfs_appender_test1
fdfs_append_file
fdfs_crc32
fdfs_delete_file
fdfs_download_file
fdfs_file_info
fdfs_monitor
fdfs_regenerate_filename
fdfs_storaged
fdfs_test
fdfs_test1
fdfs_trackerd
fdfs_upload_appender
fdfs_upload_file
我们这里使用fdfs_upload_file来做上传测试,提前准备一张图片:/root/Desktop/logo.png
#执行如下命令:
fdfs_upload_file /etc/fdfs/client.conf /root/Desktop/logo.png
返回:
group1/M00/00/00/wKgAaV5Jhc-AOWo-AAAL1t0n-Vg027.png
我们在浏览器中打开:http://192.168.0.105:8888/group1/M00/00/00/wKgAaV5Jhc-AOWo-AAAL1t0n-Vg027.png
如果能看见图片表示测试成功!
7、开机启动设置:
tracker相关命令:
/etc/init.d/fdfs_trackerd start #启动tracker服务
/etc/init.d/fdfs_trackerd restart #重启动tracker服务
/etc/init.d/fdfs_trackerd stop #停止tracker服务
chkconfig fdfs_trackerd on #自启动tracker服务
storage相关命令:
/etc/init.d/fdfs_storaged start #启动storage服务
/etc/init.d/fdfs_storaged restart #重动storage服务
/etc/init.d/fdfs_storaged stop #停止动storage服务
chkconfig fdfs_storaged on #自启动storage服务
nginx相关命令:
/usr/local/nginx/sbin/nginx #启动nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx
/usr/local/nginx/sbin/nginx -s stop #停止nginx
Nginx的开机启动参见:https://www.exception500.com/nginx/31.html