0
点赞
收藏
分享

微信扫一扫

Fastdfs5.12分布式搭建

以下我们在Centos7操作系统上以Fastdfs5.12为例来进行一下安装

环境准备

  • fastdfs5.12
  • libfastcommon-zip1.0.39
  • fastdfs-nginx-module.1.16
  • nginx1.10.0
  • ngx_cache_purge2.3
  • 可用的yum源
  • root角色
  • 检测是否开起了防火墙,如果开启则需要添加端口策略,如果没有开启则不需要

角色分配

注意:此处角色分配并不是必须按照以下模式进行分配,还需结合自身实际服务器资源情况来进行分配,同一机器上也可以部署多个角色

IP地址 角色 目录分配
172.45.1.122 trackerclient,libfastcommon /data/fastdfs/tracker
172.45.1.123 trackerclient,libfastcommon /data/fastdfs/tracker
172.45.1.124 storagenginx,libfastcommon,fastdfs-nginx-module /data/fastdfs/{storage,nginx}
172.45.1.125 storagenginx,libfastcommon,fastdfs-nginx-module /data/fastdfs/{storage,nginx}

开始安装

  1. 安装包上传

    • tracker节点:172.45.1.122,172.45.1.123

      上传fastdfs5.12,libfastcommon-zip1.0.39/opt/app/packages 目录下

    • storage节点:172.45.1.124,172.45.1.125

      上传fastdfs5.12,libfastcommon-zip1.0.39,fastdfs-nginx-module.1.16,nginx1.10.0,ngx_cache_purge2.3/opt/app/packages 目录下

  2. 安装nginx和fastdfs依赖环境

    # 安装nginx环境依赖
    yum install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel pcre-devel zlib-devel
    # 安装fastdfs环境依赖
    yum -y install make cmake gcc gcc-c++ uzip zip
  3. 安装libfatscommon

    节点:172.45.1.122,172.45.1.123,172.45.1.124,172.45.1.125

    • 进入到/opt/app/packages目录下执行以下命令
      # 执行解压命令
      tar -zxvf libfastcommon-1.0.39.tar.gz -C /opt/app
      # 进入到解压后/opt/app/libfastcommon-1.0.39,执行编译脚本
      ./make.sh
      # 执行编译命令
      ./make.sh install
  4. 安装fastdfs

    节点:172.45.1.122,172.45.1.123,172.45.1.124,172.45.1.125

    • 进入到/opt/app/packages目录下执行以下命令
      # 执行解压命令
      tar -zxvf fastdfs-5.11.tar.gz -C /opt/app
      # 进入到解压后/opt/app/fastdfs-5.11,执行编译脚本
      ./make.sh
      # 执行编译命令
      ./make.sh install
  5. 配置tracker并启动服务

    节点:172.45.1.122,172.45.1.123

    • 执行以下命令

      # 复制tracker配置文件模板
      cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
      # 创建tracker基础目录
      mkdir /data/fastdfs/tracker
    • 修改/etc/fdfs/tracker.conf配置文件

      base_path=/data/fastdfs/tracker
      store_group=group1

      其他参数保留默认配置即可,关于其他参数含义可以参考http://bbs.chinaunix.net/thread-1941456-1-1.html 链接

    • 启动tracker服务
      /etc/init.d/fdfs_trackerd start
  6. 配置storage并启动服务

    节点:172.45.1.124,172.45.1.125

    • 执行以下命令

      # 复制storage配置文件模板
      cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
      # 创建storage基础目录
      mkdir /data/fastdfs/storage
    • 修改/etc/fdfs/storage.conf配置文件

      base_path=/data/fastdfs/storage
      store_path0=/data/fastdfs/storage
      tracker_server=172.45.1.122:22122
      tracker_server=172.45.1.123:22122

      其他参数保留默认配置即可,关于其他参数含义可以参考http://bbs.chinaunix.net/thread-1941456-1-1.html 链接

    • 启动storage服务
      /etc/init.d/fdfs_storaged start
  7. 配置client客户端(主要用来通过命令行查看集群信息)

    节点:172.45.1.122,172.45.1.123

    • 执行以下命令

      # 复制client配置文件模板
      cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
    • 修改/etc/fdfs/client.conf配置文件
      base_path=/data/fastdfs/tracker
      tracker_server=172.45.1.122:22122
      tracker_server=172.45.1.123:22122

    通过fdfs_monitor /etc/fdfs/client.conf 命令可以查看到一下结果:

    [root@localhost packages]# fdfs_monitor /etc/fdfs/client.conf
    [2020-08-12 10:44:37] DEBUG - base_path=/data/fastdfs/tracker, connect_timeout=30, network_timeout=60, tracker_server_count=2, 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
    
    server_count=2, server_index=1
    
    tracker server is 172.45.1.123:22122
    
    group count: 1
    
    Group 1:
    group name = group1
    disk total space = 51175 MB
    disk free space = 47005 MB
    trunk free space = 0 MB
    storage server count = 2
    active server count = 2
    storage server port = 23000
    storage HTTP port = 8888
    store path count = 1
    subdir count per path = 256
    current write server index = 0
    current trunk file id = 0
    
          Storage 1:
                  id = 172.45.1.124
                  ip_addr = 172.45.1.124  ACTIVE
                  http domain =
                  version = 5.11
                  join time = 2020-08-12 08:34:35
                  up time = 2020-08-12 08:34:35
                  total storage = 51175 MB
                  free storage = 47005 MB
                  upload priority = 10
                  store_path_count = 1
                  subdir_count_per_path = 256
                  storage_port = 23000
                  storage_http_port = 8888
                  current_write_path = 0
                  source storage id =
                  if_trunk_server = 0
                  connection.alloc_count = 256
                  connection.current_count = 1
                  connection.max_count = 1
                  total_upload_count = 0
                  success_upload_count = 0
                  total_append_count = 0
                  success_append_count = 0
                  total_modify_count = 0
                  success_modify_count = 0
                  total_truncate_count = 0
                  success_truncate_count = 0
                  total_set_meta_count = 0
                  success_set_meta_count = 0
                  total_delete_count = 0
                  success_delete_count = 0
                  total_download_count = 0
                  success_download_count = 0
                  total_get_meta_count = 0
                  success_get_meta_count = 0
                  total_create_link_count = 0
                  success_create_link_count = 0
                  total_delete_link_count = 0
                  success_delete_link_count = 0
                  total_upload_bytes = 0
                  success_upload_bytes = 0
                  total_append_bytes = 0
                  success_append_bytes = 0
                  total_modify_bytes = 0
                  success_modify_bytes = 0
                  stotal_download_bytes = 0
                  success_download_bytes = 0
                  total_sync_in_bytes = 0
                  success_sync_in_bytes = 0
                  total_sync_out_bytes = 0
                  success_sync_out_bytes = 0
                  total_file_open_count = 0
                  success_file_open_count = 0
                  total_file_read_count = 0
                  success_file_read_count = 0
                  total_file_write_count = 0
                  success_file_write_count = 0
                  last_heart_beat_time = 2020-08-12 10:44:35
                  last_source_update = 1970-01-01 08:00:00
                  last_sync_update = 1970-01-01 08:00:00
                  last_synced_timestamp = 1970-01-01 08:00:00
          Storage 2:
                  id = 172.45.1.125
                  ip_addr = 172.45.1.125  ACTIVE
                  http domain =
                  version = 5.11
                  join time = 2020-08-12 08:34:39
                  up time = 2020-08-12 08:34:39
                  total storage = 51175 MB
                  free storage = 47005 MB
                  upload priority = 10
                  store_path_count = 1
                  subdir_count_per_path = 256
                  storage_port = 23000
                  storage_http_port = 8888
                  current_write_path = 0
                  source storage id = 172.45.1.124
                  if_trunk_server = 0
                  connection.alloc_count = 256
                  connection.current_count = 1
                  connection.max_count = 1
                  total_upload_count = 0
                  success_upload_count = 0
                  total_append_count = 0
                  success_append_count = 0
                  total_modify_count = 0
                  success_modify_count = 0
                  total_truncate_count = 0
                  success_truncate_count = 0
                  total_set_meta_count = 0
                  success_set_meta_count = 0
                  total_delete_count = 0
                  success_delete_count = 0
                  total_download_count = 0
                  success_download_count = 0
                  total_get_meta_count = 0
                  success_get_meta_count = 0
                  total_create_link_count = 0
                  success_create_link_count = 0
                  total_delete_link_count = 0
                  success_delete_link_count = 0
                  total_upload_bytes = 0
                  success_upload_bytes = 0
                  total_append_bytes = 0
                  success_append_bytes = 0
                  total_modify_bytes = 0
                  success_modify_bytes = 0
                  stotal_download_bytes = 0
                  success_download_bytes = 0
                  total_sync_in_bytes = 0
                  success_sync_in_bytes = 0
                  total_sync_out_bytes = 0
                  success_sync_out_bytes = 0
                  total_file_open_count = 0
                  success_file_open_count = 0
                  total_file_read_count = 0
                  success_file_read_count = 0
                  total_file_write_count = 0
                  success_file_write_count = 0
                  last_heart_beat_time = 2020-08-12 10:44:11
                  last_source_update = 1970-01-01 08:00:00
                  last_sync_update = 1970-01-01 08:00:00
                  last_synced_timestamp = 1970-01-01 08:00:00
  8. 配置nginx相关模块

    节点:172.45.1.124,172.45.1.125

    配置之前先说一下fastdfs-nginx-module作用:

    • 配置fastdfs-nginx-module
    • 执行以下命令
      # 解压fastdfs-nginx-module安装包
      tar -zxvf /opt/app/packages/fastdfs-nginx-module_v1.16.tar.gz -C /opt/app
      # 进入到/opt/app/fastdfs-nginx-module/src目录进行配置将
        CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
        # 修改为
        CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
    • 拷贝配置模板并编辑/etc/fdfs/mod_fastdfs.conf

      # 拷贝配置模板
      cp /opt/app/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
      # 编辑配置文件
      base_path=/data/fastdfs/storage
      tracker_server=172.45.1.122:22122
      tracker_server=172.45.1.123:22122
      url_have_group_name=true
      group_name=group1
      store_path_count=1
      store_path0=/data/fastdfs/storage
    • 配置ngx_cache_purge-2.3
    • 执行以下命令

      # 解压fastdfs-nginx-module安装包
      tar -zxvf /opt/app/packages/ngx_cache_purge-2.3.tar.gz -C /opt/app
    • nginx安装与配置
    • nginx安装
      • 执行以下命令
        # 解压nginx
        tar -zxvf /opt/app/packages/nginx-1.10.0.tar.gz -C /opt/app
        # 进入到nginx解压目录配置
        ./configure --prefix=/opt/app/nginx --add-module=/opt/app/fastdfs-nginx-module/src --add-module=/opt/app/ngx_cache_purge-2.3
        # 进入到/opt/app/nginx/sbin目录下编译和安装
        make && make install
    • nginx配置
      user nobody;
      worker_processes 1;
      events {
      worker_connections 1024;
      }
      http {
      include mime.types;
      default_type application/octet-stream;
      sendfile on;
      keepalive_timeout 65;
      server {
                  listen 8888; # 对外端口
                  server_name 172.45.1.124; # 当前nginx所在服务器IP地址,125则需要换行125即可
         location ~/group1/M00 {
                ngx_fastdfs_module;
                  }
      error_page 500 502 503 504 /50x.html;
      location = /50x.html {
              root html;
              }
      }
      }

      !> 注意:<br/>(1) 8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应, 因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。<br/>(2) Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx, 对应的 Nginx 配置为:

      location ~/group([0-9])/M00 {
       ngx_fastdfs_module;
      }

      (3) 如果通过8888下载时如发现老报 404,将 nginx.conf 第一行 user nobody 修改为 user root 后重新启动。

  9. 复制FastDFS部分配置文件到/etc/fdfs目录下

    节点:172.45.1.124,172.45.1.125

    • 进入到/opt/app/fastdfs-5.11/conf目录下执行命令
      cp http.conf mime.types /etc/fdfs/
  10. 创建数据链接

    节点:172.45.1.124,172.45.1.125

    ln -s /data/fastdfs/storage/data/ /data/fastdfs/storage/data/M00
  11. 启动nginx,进入到/opt/app/nginx/sbin目录下执行命令

    ./nginx
    # 重启nginx服务
    # ./nginx -s reload
  12. 到此,fastdfs的整个搭建过程就算是完了,接下来可以验证一下

验证fastdfs

命令行上传一张图片

命令行上传

通过nginx去访问图片

访问172.45.1.124 storage 服务器

124

访问172.45.1.125 storage 服务器

1254

![WARNING|style:callout]
在安装过程中如果遇到问题可以先查看 常见问题解决

举报

相关推荐

0 条评论