FastDFS集群搭建

一、架构

  共有2台机器:

  机器A:192.168.126.134  角色:tracker/storage

  机器B:192.168.126.135  角色:tracker/storage

二、安装步骤:

  1、环境准备(需要什么命令就下载什么,全部下载比较费时间)(在2台机器分别操作)

    yum install -y make cmake gcc gcc-c++ openssl openssl-devel pcre-devel zlib zlib-devel  

    如果出现以下错误:

     先执行下面这3个命令,

      sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
      mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
         curl -o /etc/yum.repos.d/CentOS-Base.repo https://www.xmpan.com/Centos-6-Vault-Aliyun.repo
    然后重新执行 

      yum install make cmake gcc gcc-c++ perl

    注意:如果是离线安装,请执行以下操作:   

      安装zlib库安装
        tar -zxvf zlib-1.2.5.tar.gz
        cd zlib-1.2.5
        ./configure
        make
        makeinstall

      安装pcre库安装
        tar –zxvf pcre-8.21.tar.gz,解压目录为:pcre-8.21
        cd pcre-8.21
        ./configure或./config
        make
        make install

    2、安装libfastcommon(在2台机器分别操作)

      准备一个目录,将需要的安装包放到该目录下,我习惯放在 /home/soft

        

      先解压 libfastcommon

        tar -zxvf libfastcommon-1.0.38.tar.gz

      然后进入 libcommon

        cd libfastcommon-1.0.38

      编译

        ./make.sh

      安装

        ./make.sh install

     3、安装FastDFS(2台机器都要执行)

      先解压 fastdfs

        tar -zxvf fastdfs-5.11.tar.gz

      进入fastdfs

        cd fastdfs-5.11

      编译

        ./make.sh

      安装

        ./make.sh install

      将 tracker、storage、client 的配置文件后缀名去掉    

        cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf     #tracker节点

        cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf   #storage节点  

        cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf     #客户端文件,测试用

      把 http.conf 和 mime.types 拷贝到/etc/fdfs目录下

        cp /home/soft/fastdfs-5.11/conf/http.conf /etc/fdfs/     #供nginx访问使用

        cp /home/soft/fastdfs-5.11/conf/mime.types /etc/fdfs/   #供nginx访问使用

      tracker server配置:

        vi /etc/fdfs/tracker.conf

      需要修改的内容:

        base_path=/home/fastdfs/tracker  # 存储日志和数据的根目录

      启动服务前先手动创建刚才配置文件指定的目录

        mkdir -p /home/fastdfs/tracker

      启动 tracker 服务

        fdfs_trackerd /etc/fdfs/tracker.conf       

      查看 tracker 服务

        ps -ef | grep fdfs

    

       storage server配置:

        vim /etc/fdfs/storage.conf    

        需要修改的内容如下

          port=23000 # storage服务端口(默认23000,一般不修改)

          base_path=/home/fastdfs/storage # 数据和日志文件存储根目录

          store_path0=/data/fastdfs/files # 第一个存储目录

          tracker_server=192.168.126.134:22122 # tracker服务器IP和端口

          tracker_server=192.168.126.135:22122 # tracker服务器IP和端口

          http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)

        服务启动前先收到创建storage配置文件中指定得目录,且需要关闭防火墙

          mkdir -p /home/fastdfs/storage

          mkdir -p /home/fastdfs/files

          service iptables stop  #关闭防火墙

        启动storage服务

          fdfs_storaged /etc/fdfs/storage.conf

        查看服务:    

          netstat - tulnp  

        如果服务没起来,去目录 /home/fastdfs/storage/logs 下查看日志,一般都是忘了创建目录或者防火墙没关:

    查看集群状态(状态为ACTIVE):

      fdfs_monitor /etc/fdfs/storage.conf list  

     client 配置修改:

      vim /etc/fdfs/client.conf

    需要修改的内容如下

      base_path=/home/fastdfs/client

      tracker_server=192.168.126.134:22122   # tracker服务器IP和端口

      tracker_server=192.168.126.135:22122   # tracker服务器IP和端口

    创建 client 配置文件中指定的目录:

      mkdir -p /home/fastdfs/client

    至此,fastdfs集群已完成,我们来上传个图片测试一下...(注意:这里要在图片所在目录下才能上传成功,否则会报错!)

      fdfs_test /etc/fdfs/client.conf upload dog.jfif  

       去服务器上打开存储目录看一下(同一个组的文件会自动同步):   

     可以看到,图片已经上传成功,但是我们想通过浏览器打开访问图片,因此接下来继续安装nginx(2台机器都要执行):

   4、安装nginx和fastdfs-nginx-module(在2台机器上分别操作)

    先解压 nginx-module

      cd /home/soft

      tar -zxvf fastdfs-nginx-module-1.20.tar.gz

    编辑 nginx-module 的 config 文件:

      cd /home/soft/fastdfs-nginx-module-1.20/src

    修改以下内容:

      ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
      CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"

    配置nginx:

      cd /home/soft/nginx-1.15.2

      ./configure --prefix=/usr/local/nginx_fdfs --add-module=/home/soft/fastdfs-nginx-module-1.20/src

    编译

      make

    安装

      make install

    看到/usr/local下有nginx_fdfs表示安装成功!

    切换到 /home/soft/fastdfs-nginx-module-1.20/src 修改文件 mod_fastdfs.conf

      cd /home/soft/fastdfs-nginx-module-1.20/src

      vi mod_fastdfs.conf

      修改以下内容:    

        base_path=/home/fastdfs/files
        url_have_group_name = true
        tracker_server=192.168.126.134:22122

        tracker_server=192.168.126.135:22122
        store_path0=/home/fastdfs/files

    将mod_fastdfs.conf 复制到/etc/fdfs下:

      cp mod_fastdfs.conf /etc/fdfs/

    修改文件nginx.conf配置:

      cd /usr/local/nginx_fdfs/conf

      vi nginx.conf

      增加以下内容:  

        location ~ /group[0-9]/M0[0-9] {
          ngx_fastdfs_module;
        }

    修改访问 root 权限:

      cd /usr/local/nginx_fdfs/conf

      vi nginx.config 需改为root访问

        #user nobody;

        user root;

    重要:记得修改nginx 监听端口(默认是80),避免与tomcat冲突,我这里修改为 81

      listen  81;

      现在可以启动 nginx:

      /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf -t

      /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf

    查看nginx(启动成功会有2个进程,没有worker 进程就是启动失败,具体去看日志 /usr/local/nginx_fdfs/logs,一般也是路径不存在报错):

      ps -ef | grep nginx

     浏览器访问测试: 

原文地址:https://www.cnblogs.com/bug-baba/p/15093768.html