美文网首页
Centos7.5 安装配置fastdfs 并配置nginx

Centos7.5 安装配置fastdfs 并配置nginx

作者: pokerface_max | 来源:发表于2020-06-09 14:04 被阅读0次

    前言

    FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成,主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

    (1)每次上传文件后都会返回一个地址,用户需要自己保存此地址。

    (2)为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。

    安装tracker服务

    安装依赖

    yum -y install gcc-c++ libevent
    

    安装基础模块 libfas

    # 进入编译目录
    cd /usr/local/lib/fastdfs
    # 克隆文件
    git clone https://github.com/happyfish100/libfastcommon.git
    # 编译
    cd libfastcommon/
    ./make.sh
    ./make.sh install
    

    安装fastdfs

    cd /usr/local/lib/fastdfs
    git clone https://github.com/happyfish100/fastdfs.git
    cd fastdfs
    ./make.sh
    ./make.sh install
    

    此时会在/etc/fdfs目录下生成几个文件

    tracker.conf.sample //负责均衡调度服务器配置文件
    client.conf.sample //客户端上传配置文件
    storage.conf.sample//文件存储服务器配置文件
    storage_ids.conf.sample // 集群配置
    

    还需要以下两个文件

    # http.conf //http服务器配置文件
    # mime.types //文件类型配置文件
    cp /usr/local/lib/fastdfs/fastdfs/conf/http.conf /etc/fdfs/http.conf
    cp /usr/local/lib/fastdfs/fastdfs/conf/mime.types /etc/fdfs/mime.types
    

    配置tracker 基本参数

    cp tracker.conf.sample tracker.conf
    vim tracker.conf
    # 如果只能本机上传  则改为本机ip如果允许所有IP 则不改
    bind_addr= 
    # tracker 存放日志和数据的目录
    base_path=/home/yuqing/fastdfs
    # tracker http 端口 
    http.server_port=8080 改为 http.server_port=80
    

    启动 tracker

    fdfs_trackerd /etc/fdfs/tracker.conf
    

    设置开机启动

    /sbin/chkconfig --add fdfs_trackerd
    

    配置storage 基本配置

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    #修改storage server的配置文件:
    vm /etc/fdfs/storage.conf
    # 允许访问的地址
    bind_addr= 
    #base_path表示storage存放数据的目录
    base_path=/home/yuqing/fastdfs 改为 base_path=/data/fastdfs
    #修改storage的资源存放路径
    store_path0=/home/yuqing/fastdfs 改为 store_path0=/data/fastdfs
    #如果有多个挂载磁盘则定义多个store_path,如下
    #store_path1=......
    #store_path2=......
    修改storage的对应的tracker_server的ip地址和端口
    tracker_server=192.168.209.121:22122
    #如果有多个则配置多个tracker_server
    tracker_server=......
    tracker_server=......
    # http 服务地址
    http.server_port=8888 
    

    启动 tracker

    fdfs_storaged /etc/fdfs/storage.conf
    

    设置开机启动

    /sbin/chkconfig --add fdfs_storaged
    

    使用fastdfs 提供的测试工具上传文件

    修改配置

    # 存放日志的目录
    base_path=...
    # tracker 的配置   请与storage.conf 保持一致
    tracker_server = 172.18.36.145:22122
    # 请与tracker.conf保持一致
    http.tracker_server_port = 8080
    

    测试上传

    fdfs_test /etc/fdfs/client.conf upload fdfs_tracker.sh
    

    如果成功则会返回以下结果

    This is FastDFS client test program v6.06
    
    Copyright (C) 2008, Happy Fish / YuQing
    
    FastDFS may be copied only under the terms of the GNU General
    Public License V3, which may be found in the FastDFS source kit.
    Please visit the FastDFS Home Page http://www.fastken.com/
    for more detail.
    
    [2020-06-09 14:41:11] DEBUG - base_path=/usr/local/lib/fastdfs/runtime/client, connect_timeout=5, network_timeout=60, tracker_server_count=1, anti_steal_token=0, 
    anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
    
    tracker_query_storage_store_list_without_group:
        server 1. group_name=, ip_addr=172.18.36.145, port=23000
    
    group_name=group1, ip_addr=172.18.36.145, port=23000
    storage_upload_by_filename
    group_name=group1, remote_filename=M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731.sh
    source ip address: 172.18.36.145
    file timestamp=2020-06-09 14:41:11
    file size=238
    file crc32=3937856084
    example file url: http://172.18.36.145:8080/group1/M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731.sh
    storage_upload_slave_by_filename
    group_name=group1, remote_filename=M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731_big.sh
    source ip address: 172.18.36.145
    file timestamp=2020-06-09 14:41:11
    file size=238
    file crc32=3937856084
    example file url: http://172.18.36.145:8080/group1/M00/00/00/rBIkkV7fLweAJDyoAAAA7uq26lQ0731_big.sh
    

    配置nginx 访问文件 (需要在storage上配置)

    nginx 本身没有fastdfs 模块 需要在编译的时候加入fastdfs -nginx 模块
    下载fastdfs-nginx-module

    git clone https://github.com/happyfish100/fastdfs-nginx-module.git
    

    下载nginx 源码及安装编译过程可参照
    https://www.jianshu.com/p/da8bc470836c

    只需要在configure的时候加入参数

    # 加入附加模块
    ... --add-module=/usr/local/lib/fastdfs/fastdfs-nginx-module/src
    

    然后按照nginx 正常流程make make install

    复制并配置module 配置文件

    cp /usr/local/lib/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/mod_fastdfs.conf
    vim /etc/fdfs/mod_fastdfs.conf
    
    # fastdfs-nginx 日志目录
    base_path=
    # 跟storage.conf 里配置一样
    tracker_server=
    # 跟storage.conf 的配置一样
    store_path0=
    # http链接是否有groupname
    url_have_group_name = true
    

    修改nginx 的配置
    加入如下server

    server {
    listen 80;
    server_name 192.168.5.72;
        location /group1/M00 {
            ngx_fastdfs_module;
        }
    }
    

    集群与高可用

    集群只需要部署多个tracker storage 服务就可以了

    相关文章

      网友评论

          本文标题:Centos7.5 安装配置fastdfs 并配置nginx

          本文链接:https://www.haomeiwen.com/subject/tapstktx.html