FastDFS在CentOS7安装教程

FastDFS安装流程

前言 : 安装属实不易
  1. 自己摸索了一天才弄好,吐血。。。刚稳定情绪就来写避坑指南啦
  2. 希望有类似需求的小伙伴,能少走弯路。
  3. 先熟悉一下工作流程
    1. 上传流程
      在这里插入图片描述
    2. 下载流程
      在这里插入图片描述

安装前准备

  1. 首先把相关资源上传到Linux上 : FastDFS资源地址 && 提取码 : 5fhy
    在这里插入图片描述

终于要开始啦

  1. 安装相关依赖
    1. 安装GCC依赖 : 对C语言代码进行编译运行
      1. sudo yum -y install gcc (sudo意思以管理员身份运行,yum软件包管理命令)
    2. 安装unzip工具 : 压缩包进行解压
      1. sudo yum install -y unzip zip
    3. 安装libevent : 事件通知相关
      1. sudo yum -y install libevent
    4. 安装Nginx依赖包
      1. sudo yum -y install pcre pcre-devel zlib zlib-devel openssl openssl-devel
    5. 本次所有资源统一上传到/usr/local
    6. 创建文件夹: /home/xiaolu/fdfs/
      1. 在下面创建tracker和storage
  2. 安装libfastcommon-master
    1. unzip libfastcommon-master.zip
    2. cd libfastcommon-master
    3. sudo ./make.sh
    4. sudo ./make.sh install
  3. 安装FastDFS
    1. cd …/ (返回到FastDFS压缩包位置)
    2. tar -xvf FastDFS_v5.08.tar.gz
    3. cd FastDFS
    4. sudo ./make.sh
    5. sudo ./make.sh install
    6. 安装完查看进度
      1. ll /etc/init.d/ | grep fdfs 如看到下边的内容,恭喜你离成功又近了一步

        1. fdfs_trackerd 	# tracker启动脚本
        2. fdfs_storaged    # storage启动脚本
        
      2. ll /etc/fdfs

        1. tarcker.conf.sample    # tracker的配置文件模板
        2. storage.sample	      # storage的配置文件模板
        3. client.sample 	      # 客户端的配置文件模板
        
    7. 配置tracker
      1. cd /etc/fdfs

      2. sudo cp tracker.conf.sample tracker.conf (复制一份,以防配置错)

      3. sudo vim tracker.conf : 修改base_path属性

        1. base_path=/home/xiaolu/fdfs/tracker # tracker的数据和日志存放目录
        
      4. 启动服务

        1. sudo service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop
        2. sudo chkconfig fdfs_trackerd on # tracker开机启动
        
    8. 启动storage
      1. sudo cp storage.conf.sample storage.conf

      2. sudo vim storage.conf

        base_path=/home/xiaolu/fdfs/storage    # storage的数据和日志存放目录
        store_path0=/home/xiaolu/fdfs/storage    # storage的上传文件存放路径
        tracker_server=192.168.88.166:22122   # tracker的地址
        
      3. sudo service fdfs_storaged start # 启动fdfs_storaged服务,停止用stop

      4. sudo chkconfig fdfs_storaged on # storaged开机启动

      5. ps -ef | grep fdfs 再次确认是否都已安装完成

  4. 来张图庆祝安装成功
    在这里插入图片描述

别走,还没完

为什么? 我们实际生产环境中不管是tracker还是storage都是集群的,有时候会因为网络延迟导致访问从Storage时访问不到,这时nginx就派上用场啦。
  1. 安装Nginx及FastDFS模块

    1. tar -xvf fastdfs-nginx-module_v1.16.tar.gz

    2. 配置config文件(进入到目录)

      # 修改配置
      vim config
      # 执行下面命令(将配置中的/usr/local改为/usr):
      :%s+/usr/local/+/usr/+g
      # 添加或修改,不然会编译报错
      ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/"
      CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
      
    3. 配置mod_fastdfs.conf

      # 将src目录下的mod_fastdfs.conf复制到 /etc/fdfs目录:
      sudo cp mod_fastdfs.conf /etc/fdfs/
      # 编辑该文件
      cd /etc/fdfs/  vimmod_fastdfs.conf 
      
      1. 修改配置

        connect_timeout=10                  		# 客户端访问文件连接超时时长(单位:秒)
        tracker_server=192.168.56.101:22122  	# tracker服务IP和端口
        url_have_group_name=true            		# 访问链接前缀加上组名
        store_path0=/home/xiaolu/fdfs/storage        		# 文件存储路径
        
    4. 复制FastDFS配置到/etc/fdfs下

      1. cd /usr/local/FastDFS/conf/
      2. cp http.conf mime.types /etc/fdfs/
  2. 安装nginx

    1. tar -xvf nginx-1.10.0.tar.gz
    2. cd /usr/local/nginx-1.10.0
    3. sudo ./configure --prefix=/opt/nginx --sbin-path=/usr/bin/nginx --add-module=/usr/local/fastdfs-nginx-module/src
    4. sudo make && sudo make install # 编译安装
  3. nginx整合fastdfs-module模块

    1. sudo vim /opt/nginx/conf/nginx.conf

      server {
            listen       80;
            server_name  image.xiaolu.com;
      
        	# 监听域名中带有group的,交给FastDFS模块处理
            location ~/group([0-9])/ {
                ngx_fastdfs_module;
            }
      
            location / {
                root   html;
                index  index.html index.htm;
            }
      
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
            
        }
      
  4. 启动

    • nginx # 启动
    • nginx -s stop # 停止
    • nginx -s reload # 重新加载配置
  5. 设置开机自启

    1. cd /etc/init.d/
    2. touch nginx
    3. 把下方内容复制进去
      # Source networking configuration.
      . /etc/sysconfig/network
      
      # Check that networking is up.
      [ "$NETWORKING" = "no" ] && exit 0
      
      nginx="/usr/bin/nginx"
      prog=$(basename $nginx)
      
      NGINX_CONF_FILE="/opt/nginx/conf/nginx.conf"
      
      [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx
      
      lockfile=/var/lock/subsys/nginx
      
      make_dirs() {
         # make required directories
         user=`$nginx -V 2>&1 | grep "configure arguments:.*--user=" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`
         if [ -n "$user" ]; then
            if [ -z "`grep $user /etc/passwd`" ]; then
               useradd -M -s /bin/nologin $user
            fi
            options=`$nginx -V 2>&1 | grep 'configure arguments:'`
            for opt in $options; do
                if [ `echo $opt | grep '.*-temp-path'` ]; then
                    value=`echo $opt | cut -d "=" -f 2`
                    if [ ! -d "$value" ]; then
                        # echo "creating" $value
                        mkdir -p $value && chown -R $user $value
                    fi
                fi
             done
          fi
      }
      
      start() {
          [ -x $nginx ] || exit 5
          [ -f $NGINX_CONF_FILE ] || exit 6
          make_dirs
          echo -n $"Starting $prog: "
          daemon $nginx -c $NGINX_CONF_FILE
          retval=$?
          echo
          [ $retval -eq 0 ] && touch $lockfile
          return $retval
      }
      
      stop() {
          echo -n $"Stopping $prog: "
          killproc $prog -QUIT
          retval=$?
          echo
          [ $retval -eq 0 ] && rm -f $lockfile
          return $retval
      }
      
      restart() {
          configtest || return $?
          stop
          sleep 1
          start
      }
      
      reload() {
          configtest || return $?
          echo -n $"Reloading $prog: "
          killproc $nginx -HUP
          RETVAL=$?
          echo
      }
      
      force_reload() {
          restart
      }
      
      configtest() {
        $nginx -t -c $NGINX_CONF_FILE
      }
      
      rh_status() {
          status $prog
      }
      
      rh_status_q() {
          rh_status >/dev/null 2>&1
      }
      
      case "$1" in
          start)
              rh_status_q && exit 0
              $1
              ;;
          stop)
              rh_status_q || exit 0
              $1
              ;;
          restart|configtest)
              $1
              ;;
          reload)
              rh_status_q || exit 7
              $1
              ;;
          force-reload)
              force_reload
              ;;
          status)
              rh_status
              ;;
          condrestart|try-restart)
              rh_status_q || exit 0
                  ;;
          *)
              echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
              exit 2
      esac
      
    4. chmod 777 /etc/init.d/nginx # 修改权限
    5. chkconfig --add /etc/init.d/nginx # 添加到服务列表
    6. chkconfig nginx on 设置开机启动

大功告成啦

在这里插入图片描述

不!最后一步设置防火墙

  1. /sbin/iptables -I INPUT -p tcp --dport 22122 -j ACCEPT
  2. /sbin/iptables -I INPUT -p tcp --dport 23000 -j ACCEPT
  3. /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  4. /etc/rc.d/init.d/iptables save

再送一个小Demo给你哦

  1. 请参考: FaseDFS入门小demo
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值