搭建fastdfs分布式文件集群

配置最终目标
以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
发布了10 篇原创文章 · 获赞 2 · 访问量 1812

猜你喜欢

转载自blog.csdn.net/ZhuRiZheWuGe/article/details/88953862