参考地址:
https://www.cnblogs.com/chiangchou/p/fastdfs.html
https://www.linuxidc.com/Linux/2015-04/115767.htm
https://www.cnblogs.com/Eivll0m/p/5378328.html
# 环境
# 192.168.1.105(node105)和192.168.1.107(node107)双机热备
# node105和node107安装tracker控制器,node105的存储节点为本机和node107,node107的存储节点为本机和node105
# 访问FastDFS时,通过Nginx访问node105的tracker控制器(node105和node107两个存储节点);
# 假如node105宕机,通过Nginx代理访问FastDFS时,location中配置一条if判断返回的状态码或主机存活状态信息,自动迁移至node107的tracker
### <1> 双机安装libfastcommon-master;fastdfs-master
unzip libfastcommon-master.zip
./make.sh && ./make.sh install
unzip fastdfs-master.zip
./make.sh && ./make.sh install
### <2> 配置tracker控制器
# 创建tracker数据文件和日志存储目录
mkdir -p /home/data/fastdfs-tracker
# 创建tracker控制器的配置文件
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
# 配置配置文件参数
vim /etc/fdfs/tracker.conf
base_path=/home/data/fastdfs-tracker
http.server_port=80
# 优化启动命令并启动tracker
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/fdfs_storaged /usr/local/bin
/etc/init.d/fdfs_trackerd start
### <3> 配置storage存储节点
# 创建storage数据文件和日志存储目录
mkdir -p /home/data/fastdfs-storage
# 创建storage存储节点的配置文件
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
# 配置配置文件参数
vim /etc/fdfs/storage.conf
group_name=group1
base_path=/home/data/fastdfs-storage
store_path_count=1
store_path0=/home/data/fastdfs-storage
tracker_server=192.168.1.105:22122
tracker_server=192.168.1.107:22122
http.server_port=80
# 启动storage并检测tracker和storage是否通信,出现两个storage存储节点和ACTIVE即为通信成功
/etc/init.d/fdfs_storaged restart
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
### <4> 配置client
# 创建client数据文件和日志存储目录
mkdir -p /home/data/fastdfs-client
# 创建client的配置文件
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
# 配置配置文件参数
vim /etc/fdfs/client.conf
base_path=/home/data/fastdfs-client
tracker_server=192.168.1.105:22122
tracker_server=192.168.1.107:22122
http.tracker_server_port=80
### <5> 配置fastdfs-nginx-module-master模块
# 编译安装Nginx发行版,--add-module添加模块
./configure --add-module=/home/tools/fastdfs-nginx-module-master/src && make && make install
# 创建fastdfs-nginx-module-master模块的配置文件
cp /home/tools/fastdfs-nginx-module-master/src/mod_fastdfs.conf /etc/fdfs/
cp /home/tools/fastdfs-master/conf/http.conf /etc/fdfs/
cp /home/tools/fastdfs-master/conf/anti-steal.jpg /etc/fdfs/
cp /home/tools/fastdfs-master/conf/mime.types /etc/fdfs/
# 配置配置文件参数
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=192.168.1.105:22122
tracker_server=192.168.1.107:22122
store_path0=/home/data/fastdfs-storage
url_have_group_name = true
### <6> 配置nginx转发策略
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
### <7> 测试文件上传
[root@node105 fastdfs-client]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf 656406679001923469.jpg
group1/M00/00/00/wKgBaVxucqSAauTdAACSdqD11yM736.jpg
### <8> 测试下载和故障迁移
#分别访问node105和node107
http://192.168.1.105/group1/M00/00/00/wKgBaVxucqSAauTdAACSdqD11yM736.jpg
http://192.168.1.107/group1/M00/00/00/wKgBaVxucqSAauTdAACSdqD11yM736.jpg
#模拟105宕机,因为上面上传的图片是从node105的client上传的
http://192.168.1.107/group1/M00/00/00/wKgBaVxucqSAauTdAACSdqD11yM736.jpg