配置最终目标
以2台服务做集群,其中2台作为tracker服务器又作为storage节点
192.168.2.101 tracker group1 storage1
192.168.2.102 tracker group1 storage2
环境及前提条件
首先在192.168.2.101安装
开放两个服务器22122 23000 8080端口
安装libfastcommon-master依赖包
libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。
上传fastdfs-nginx-module_v1.16.tar.gz到/usr/local/develop/libfastcommonV1.0.7.tar
解压 编译 安装
tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7/
./make.sh
./make.sh install
至此libfastcommon就已经安装成功了,但注意一下,libfastcommon.so 默认安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/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
安装FastDFS
将FastDFS_v5.05.tar.gz上传至/usr/local/develop/FastDFS_v5.05.tar 解压 编译 安装
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
./make.sh
./make.sh install
进入安装目录
cd /etc/fdfs/
复制配置文件
cp storage.conf.sample storage.conf
cp tracker.conf.sample tracker.conf
至此 FastDFS安装完成
安装tracker
创建储存目录
cd /home
mkdir fastdfs
进入安装目录
cd /etc/fdfs/
编辑
vim tracker.conf
修改
base_path=/home/yuqing/FastDFS
改为
base_path=/home/fastdfs #设置tracker的数据文件和日志目录
其他默认即可
有些教程还有 修改端口路
http.server_port=80
在fastdfs5.05中已经不用配置 不用管这个
其他配置
disabled=false #启用配置文件 默认即可
port=22122 #端口 默认即可
启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
查看端口是否正确
netstat -unlpt|grep fdfs
重启命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart #会先显示停止 在启动
安装storage
进入安装目录
cd /etc/fdfs/
编辑
vim storage.conf
disabled=false #启用配置文件
group_name=group1 #组名
port=23000 #storage端口 默认即可
base_path=/home/fastdfs #storage日志目录
store_path_count=1 #存储路径个数 需要和store_path个数匹配
store_path0=/home/fastdfs/fdfs_storage #如果store_path_count的值是2 在下面加一个store_path1=/home/...
tracker_server=192.168.2.201:22122 #tracker服务器ip 有几个写几个
tracker_server=192.168.2.202:22122
http.server_port=8080 #端口 已经没用 不需要注意
启动
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
查看端口是否正确
netstat -unlpt|grep fdfs
重启命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart #会先显示停止 在启动
在192.168.2.102安装 和192.168.2.101步骤一样 启动tracker和storage
启动成功 可以用fdfs_monitor查看集群情况
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
查看两个storage的状态是ACTIVE状态即为正常
用代码进行上传测试
创建springboot微服务项目
如图创建配置文件
fastdfs-client.properties 内容为
fastdfs.connect_timeout_in_seconds = 5
fastdfs.network_timeout_in_seconds = 30
fastdfs.charset = UTF-8
fastdfs.tracker_servers = 192.168.2.101:22122,192.168.2.102:22122
测试代码
package com.xuecheng.test.fastdfs;
import org.csource.fastdfs.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestFastDFS {
//上传文件
@Test
public void testUpload(){
try {
//加载配置文件fastdfs-client.properties
ClientGlobal.initByProperties("config/fastdfs-client.properties");
//定义trackerClient 用于请求trackerServer
TrackerClient trackerClient = new TrackerClient();
//链接tracker
TrackerServer trackerServer = trackerClient.getConnection();
//获取stroge
StorageServer storeStorage = trackerClient.getStoreStorage(trackerServer);
//创建storageClient
StorageClient1 storageClient1 = new StorageClient1();
//想storageServer服务器上传文件
//本地文件路径
String filePath = "d:/d.jpg";
//上传成功后拿到文件ID
String fileId = storageClient1.upload_file1(filePath, "jpg", null);
System.out.println(fileId);
} catch (Exception e) {
e.printStackTrace();
}
}
}
测试
进入目录192.168.2.101数据存储目录
cd /home/fastdfs/fdfs_storage/data/00/00
进入目录192.168.2.102数据存储目录
cd /home/fastdfs/fdfs_storage/data/00/00
分布式文件搭建成功
安装nginx
先在192.168.2.101安装nginx
因为FastDFS 的http服务太弱,无法提供负载均衡等服务,所以需要借助nginx来进行http访问的负载
将nginx-1.8.0.tar.gz和fastdfs-nginx-module_v1.16.tar.gz上传到/usr/local 分别解压
tar -zxvf nginx-1.8.0.tar.gz
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
进入fastdfs-nginx-module文件夹/src
cd fastdfs-nginx-module/src/
修改 config 文件将/usr/local/路径改为/usr/
复制mod_fastdfds.conf
cp mod_fastdfs.conf /etc/fdfs/
进入/etc/fdfs/目录 编辑mod_fastdfs.conf文件
cd /etc/fdfs/
vim mod_fastdfs.conf
base_path=//home/fastdfs #保存日志目录
tracker_server=192.168.2.101:22122
tracker_server=192.168.2.102:22122 #tracker服务器ip及其端口 有几个写几行
storage_server_port=23000 #storage服务器端口路
group_name=group1 #当前服务器的组名
url_have_group_name= true #文件url中是否有组名
store_path_count=1 #存储路径个数 需要和store_path个数匹配
store_path0=/home/fastdfs/fdfs_storage #如果store_path_count的值是2 在下面加一个store_path1=/home/...
http.need_find_content_type=true #从文件扩展名查找文件 fastdfs5.05版本没有
group_count= 1 #设置组的个数 如下图说是 需要和文件末尾匹配
进入fastdfs解压路劲 复制配置文件
cd /usr/local/develop/FastDFS_v5.05.tar/FastDFS/conf
cp http.conf mime.types /etc/fdfs/
进入nginx解压目录
安装nginx
./configure --prefix=/usr/local/nginx/ --add-module=//usr/local/fastdfs-nginx-module/src
make #编译
make install #安装
编辑nginx配置文件
cd /usr/local/nginx/conf
vim nginx.conf
修改端口 增加location
location ~/group1/M00 {
ngx_fastdfs_module;
}
注意 这里网上教程中大多数有一个创建软链
ln -s /home/fastdfs/fdfs_storage/data /home/fastdfs/fdfs_storage/data/M00 #亲测没有任何意义
并且location中不需要root根路径
查看nginx的版本及模块
/usr/local/nginx/sbin/nginx -V
启动nginx
/usr/local/nginx/sbin/nginx
然后在192.168.2.102安装nginx 安装步骤一样 启动nginx
访问http://192.168.2.102:8080/group1/M00/00/00/wKgCZVyhvV6AdWEUAAW_RUdweys637.jpg
访问http://192.168.2.102:8080/group1/M00/00/00/wKgCZVyhvV6AdWEUAAW_RUdweys637.jpg
外部安装总代理服务器
常用指令
启动tracker
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
重启命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart #会先显示停止 在启动
启动storage
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf
重启命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart #会先显示停止 在启动
启动成功 可以用fdfs_monitor查看集群情况
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
查看两个storage的状态是ACTIVE状态即为正常
查看nginx的版本及模块
/usr/local/nginx/sbin/nginx -V
启动nginx
/usr/local/nginx/sbin/nginx
重启
/usr/local/nginx/sbin/nginx -s reload
停止
kill -9 ***
开机启动
编辑文件
vim /etc/rc.d/rc.local
2、增加如下:
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
/usr/local/nginx/sbin/nginx
3、在centos7中, /etc/rc.d/rc.local 文件的权限被降低了,需要给rc.local 文件增加可执行的权限;
chmod +x /etc/rc.d/rc.loca