基于centos7.9安装FastDFS分布式文件系统

参考文档:
FastDFS 分布式文件系统详解
FASTDFS简书
FASTDFS官方文档

编译环境准备

yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y

基于centos7.9安装FastDFS分布式文件系统

磁盘目录准备以及安装

mkdir /home/dfs #创建数据存储目录
cd /usr/local/src #切换到安装目录准备下载安装包

  • 安装libfastcommon
    git clone https://github.com/happyfish100/libfastcommon.git --depth 1
    cd libfastcommon/
    ./make.sh && ./make.sh install #编译安装

github克隆太慢怎么办???

  • 安装FastDFS
    cd /usr/local/src
    git clone https://github.com/happyfish100/fastdfs.git --depth 1
    cd fastdfs/
    ./make.sh && ./make.sh install #编译安装
    #配置文件准备
    cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
    cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
    #tracker.conf storage.conf client.conf 默认已经有,没有的话执行下面三个命令
    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 #客户端文件,测试用

  • 安装fastdfs-nginx-module
    cd /usr/local/src
    git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
    #不用make
    cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs

  • 安装nginx
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
    tar -zxvf nginx-1.15.4.tar.gz #解压
    cd nginx-1.15.4/
    #添加fastdfs-nginx-module模块
    ./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
    make && make install #编译安装

因为我使用宝塔系统,已经安装了nginx,没有执行安装nginx这一步,可以在安装完fastdfs-nginx-module之后,使用宝塔把nginx卸载掉(有重要配置请备份),重新安装一次,安装时选择编译安装添加
--add-module=/usr/local/src/fastdfs-nginx-module/src/
基于centos7.9安装FastDFS分布式文件系统

单机部署配置

根据命令 ifconfig 获取本机ip

基于centos7.9安装FastDFS分布式文件系统

  • tracker配置
    #服务器ip为 上图inet,文章用 192.168.1.1做示例
    vim /etc/fdfs/tracker.conf
    #需要修改的内容如下
    port=22122 # tracker服务器端口(默认22122,一般不修改)
    base_path=/home/dfs # 存储日志和数据的根目录

  • storage配置

  • vim /etc/fdfs/storage.conf
    #需要修改的内容如下
    port=23000 # storage服务端口(默认23000,一般不修改)
    base_path=/home/dfs # 数据和日志文件存储根目录
    store_path0=/home/dfs # 第一个存储目录
    tracker_server=192.168.1.1:22122 # tracker服务器IP和端口,有多个添加多个
    http.server_port=82 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致。注意,宝塔系统的端口也为8888,所以改为82)

  • client测试
    #启动程序trackerd和storaged
    fdfs_trackerd /etc/fdfs/tracker.conf restart
    fdfs_storaged /etc/fdfs/storage.conf restart
    vim /etc/fdfs/client.conf
    #需要修改的内容如下
    base_path=/home/dfs
    tracker_server=192.168.1.1:22122 #tracker服务器IP和端口
    #保存后测试,上传预先准备的文件,返回ID表示成功 如:group1/M00/00/00/xxx.jpg
    fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/test.jpg
    基于centos7.9安装FastDFS分布式文件系统

  • 配置nginx访问

vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.1.1:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config,以下是我本地路径
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置

server {
    listen       82;    ## 该端口为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;
    }
}

#测试下载,用外部浏览器访问刚才已传过的test图片,能显示图片表示部署成功(注意在防火墙已开通端口)

基于centos7.9安装FastDFS分布式文件系统

分布式部署

分布式部署,主要修改每台服务的其中两个配置
假设有192.168.1.1,192.168.1.2,192.168.1.3,且都完成了单机部署

  • storage配置
    vim /etc/fdfs/storage.conf
    #需要修改的内容如下
    tracker_server=192.168.1.1:22122 # 服务器1
    tracker_server=192.168.1.2:22122 # 服务器2
    tracker_server=192.168.1.3:22122 # 服务器3
    `
  • nginx配置
    vim /etc/fdfs/mod_fastdfs.conf
    #需要修改的内容如下
    tracker_server=192.168.52.2:22122 # 服务器1
    tracker_server=192.168.52.3:22122 # 服务器2
    tracker_server=192.168.52.4:22122 # 服务器3
    url_have_group_name=true
    store_path0=/home/dfs
    #配置nginx.config
    vim /usr/local/nginx/conf/nginx.conf
    #添加如下配置
server {
    listen       82;    ## 该端口为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;
    }
}
上一篇:分布式存储FastDFS介绍


下一篇:js 读取xml文件