zoukankan      html  css  js  c++  java
  • FastDFS 服务器(一)

    引用:https://www.jianshu.com/p/4783d300f659

    参考:https://www.cnblogs.com/chiangchou/p/fastdfs.html

    https://blog.csdn.net/weixin_43696917/article/details/97904274?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

    Fdfs上传的图片批量删除:

    https://blog.csdn.net/u014401637/article/details/102704878?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-102704878.nonecase&utm_term=fastdfs%E6%89%B9%E9%87%8F%E5%88%A0%E9%99%A4%E6%96%87%E4%BB%B6

    FastDFS服务器部署

    FastDFS是分布式高可用、自动负载均衡的文件系统,特别适合小文件的在线服务,比如图片服务等。本文介绍一下,如何快速部署FastDFS服务器

    FastDFS系列

    说明

    说明位置
    数据存储目录 /home/dfs
    安装包 /usr/local/src

    安装依赖


    • 创建数据存储目录
    mkdir /home/dfs 
    
    • 安装依赖的第三方库
    yum install git gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl-devel wget vim -y
    
    • 安装libfastcommon
    cd /usr/local/src
    git clone https://github.com/happyfish100/libfastcommon.git --depth 1
    cd libfastcommon/
    ./make.sh && ./make.sh install #编译安装
    

    安装FastDFS


    cd /usr/local/src
    git clone https://github.com/happyfish100/fastdfs.git --depth 1
    cd fastdfs/
    ./make.sh && ./make.sh install #编译安装
    #配置文件准备
    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 #客户端文件,测试用
    cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
    cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
    

    单机部署


    tracker配置


    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.58.101:22122  # tracker服务器IP和端口
    http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
    

    服务启动


    • 关闭防火墙
    #不关闭防火墙的话无法使用
    systemctl stop firewalld.service #关闭
    systemctl restart firewalld.service #重启
    
    • 启动tracker
    /etc/init.d/fdfs_trackerd start #启动tracker服务
    chkconfig fdfs_trackerd on #自启动tracker服务
    
    • 启动storage
    /etc/init.d/fdfs_storaged start #启动storage服务
    chkconfig fdfs_storaged on #自启动storage服务
    

    Client测试


    vim /etc/fdfs/client.conf
    #需要修改的内容如下
    base_path=/home/dfs
    tracker_server=192.168.58.101:22122    #tracker服务器IP和端口
    #保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
    fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz
    

    Nginx直接访问


    FastDFS支持Nginx直接访问,不需要经过Client中转,效率更高

    安装fastdfs-nginx-module


    cd ../ #返回上一级目录
    git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
    cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
    

    安装nginx


    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 #编译安装
    
    • /etc/fdfs/mod_fastdfs.conf
    tracker_server=192.168.58.101:22122  #tracker服务器IP和端口
    url_have_group_name=true
    store_path0=/home/dfs
    
    • /usr/local/nginx/conf/nginx.conf
    server {
        listen       8888;    ## 该端口为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;
        }
    }
    
    • 浏览器访问
    http://192.168.58.101:8888/group1/M00/00/00/wKgAQ1pysxmAaqhAAA76tz-dVgg.tar.gz
    

    分布式部署


    • 增加部署

    按照单机部署模式在192.168.58.201上部署FastDFS(数据目录/home/dfstracker.conf配置)

    • 修改/etc/fdfs/storage.conf
    port=23000  # storage服务端口(默认23000,一般不修改)
    base_path=/home/dfs  # 数据和日志文件存储根目录
    store_path0=/home/dfs  # 第一个存储目录
    tracker_server=192.168.58.101:22122  # 服务器1
    tracker_server=192.168.58.201:22122  # 服务器2
    http.server_port=8888  # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
    
    • 修改/etc/fdfs/client.conf
    base_path=/home/dfs
    tracker_server=192.168.58.101:22122  # 服务器1
    tracker_server=192.168.58.201:22122  # 服务器2
    
    • 修改/etc/fdfs/mod_fastdfs.conf
    tracker_server=192.168.58.101:22122  # 服务器1
    tracker_server=192.168.58.201:22122  # 服务器2
    url_have_group_name=true
    store_path0=/home/dfs
    

    重要信息

    • 日志目录:/home/dfs/logs

    如果遇到问题可以查看日志/home/dfs/logs

    常见问题

    • tracker_query_storage fail, error no: 2, error info: No such file or directory:检查配置文件/etc/fdfs/tracker.confstorage.confclient.conf是否正确。还可以查看日志/home/dfs/logs/

    参考

  • 相关阅读:
    谷哥的小弟学后台(29)——动态代理
    HDU
    jni 入门 android的C编程之旅 --->环境搭建&&helloworld
    C# 开发系列(二)
    C# 开发系列(一)
    ajax跨域实现api 接口调用
    dependency injection(2)
    要读的书单
    dependency injection
    php dependency innjection
  • 原文地址:https://www.cnblogs.com/wx881208/p/13691515.html
Copyright © 2011-2022 走看看