• fastDFS安装笔记


    1.官方安装教程

    官方教程:INSTALL

    这里,我在/usr/local目录下创建了一个fastDFS目录,然后将官网教程中git下来的目录都放到此目录中。

    在这里插入图片描述

    2. 配置

    2.1配置tracker

    安装完成后,/etc/fdfs目录会被自动创建,进入其中,配置tracker。

    在这里插入图片描述

    • 配置base_path

    在这里插入图片描述

    • 启动tracker
    /usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf start
    
    • 1

    说明:执行这条指令后发现并没有启动成功,一直报Usage:./fdfs_trackerd {start | stop | status | restart | condrestart}

    试了各种方法,包括从init.d里执行fdfs_trackerd,也并没有成功:

    在这里插入图片描述

    解决:我发现/usr/bin目录中并没有fdfs_trackerd,我之前是将它从/usr/local/fastDFS/fastdfs/init.d中拷贝到/usr/bin中的。解决:将fastDFS安装产生的文件删除干净,然后重装,跟着官方文档重装的时候一定不要输入那些git checkout命令!!!!
    重装完之后, /usr/bin目录下就有了fdfs_trackerd。

    原因:重新按照官方github文档进行安装,发现居然是执行了这些指令导致的问题:

    在这里插入图片描述

    我进行了2种安装方式的对比,一种是不执行图中的那些git checkout指令,一种是执行了 git checkout,后者安装完之后/usr/bin目录中根本找不到fdfs_trackerdfdfs_storaged !!!
    将fastdfs/init.d目录下的fdfs_trackerdfdfs_storaged 复制到/usr/bin中,跑起来就会出现Usage:./fdfs_trackerd {start | stop | status | restart | condrestart}



    • 重新安装之后,启动tracker

      /usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf start
      
      • 1

      注意,必须指定配置文件,否则出现 “ERROR - file: shared_func.c, line: 1301, file /usr/bin/start not exist”

    2.2 配置storage
    • 进入/etc/fdfs目录配置storage.conf

    • 配置base_path,路径可以跟tracker的一样

      在这里插入图片描述

    • 配置storage_path
      在这里插入图片描述
      此处是实际存放文件的路径,不建议跟base_path一样。

    • 配置storage的tracker地址

      在这里插入图片描述
      可以配置多个tracker,其中有说明。

    • 启动storaged

      /usr/bin/fdfs_storaged /etc/fdfs/storage.conf
      
      • 1
    2.3 配置client
    • 配置base_path和tracker_server
      在这里插入图片描述

      在这里插入图片描述

    • 启动client,上传文件

      在这里插入图片描述

    3.给nginx增加fastdfs插件

    • 3.1 为什么要增加nginx插件?

      因为tracker存放文件的位置不是固定的,如果根据tracker返回的文件路径配置nginx的location,那么需要配置无数个location。所以这就需要有一个东西,这个东西可以代替nginx的location功能,在海量的路径中自己去寻找某个文件在具体的哪台机器的哪个位置上。这就是fastdfs-nginx-module插件
      具体的数据通路是:客户端 -> nginx -> 插件 -> tracker -> storage

    • 3.2 下载fastdfs-nginx-module并配置
      git clone https://github.com/happyfish100/fastdfs-nginx-module
      
      • 1

      进行插件配置以连接tracker:

      cd fastdfs-nginx-module/src
      vim mod_fastdfs.conf
      
      • 1
      • 2

      把下面的几个值修改:

      在这里插入图片描述

      在这里插入图片描述

      注意,端口不要填错,不然到时候启动nginx没有worker进程



    4.安装nginx

    • 下载好nginx压缩包

      wget http://nginx.org/download/nginx-1.20.2.tar.gz
      
      • 1
      tar -zxvf nginx-1.20.2.tar.gz && rm nginx-1.20.2.tar.gz
      
      • 1
    • 进入nginx目录

      cd nginx-1.20.2
      
      • 1
    • 安装 nginx依赖库

      yum -y install zlib zlib-devel pcre-devel openssl penssl-devel
      
      • 1
    • 配置增加fastdfs插件,这里增加的路径是你插件下的src路径

      ./configure --add-module=/usr/local/fastDFS/fastdfs-nginx-module/src
      
      • 1

      然后编译安装nginx

      make && make install
      
      • 1

      安装完之后在/usr/local目录下自动创建了nginx目录,里面包括配置文件和启动文件



    4.1 修改nginx配置文件
    • 可以打开nginx安装位置的conf目录,配置nginx,指定nginx日志路径,这样在nginx出错的时候就可以去日志里找问题

      在这里插入图片描述

    • 添加location,转发客户请求到fdfs模块处理

      在这里插入图片描述


    4.2 启动nginx
    • 一定要先启动fdfs服务,再启动nginx,不然会导致nginx没有worker进程。

    • 进入/usr/local/nignx/sbin目录,启动nginx。然后访问80端口,发现并没有响应。
      打开日志文件:

      在这里插入图片描述

      发现/etc/fdfs目录中mod_fastdfs.conf 不存在。

      解决:将 fastdfs-nginx-module/src/mod_fastdfs.conf拷贝到/etc/fdfs目录下

      在这里插入图片描述

      再次启动nginx,访问80端口仍然没有反应,这时将fastdfs安装目录下的conf中的这俩拷贝到
      /etc/fdfs/目录下

      在这里插入图片描述



    5. 设置开机自启(centos下)

    • 编写trackerd的服务文件 fdfs_trackerd_startup.service
      [Unit]
      Description=fastDFS tracked server //描述
      After=network.target remote-fs.target nss-lookup.target //服务类别
      
      [Service]
      Type=forking //后台运行
      ExecStart=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start //启动命令
      ExecReload=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart //重启命令
      ExecStop=/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop //停止命令
      
      [Install]
      WantedBy=multi-user.target //服务安装的相关设置,可设置为多用户
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      编写好之后,存到/usr/lib/systemd/system目录中
      mv fdfs_trackerd_startup.service /usr/lib/systemd/system
      systemctl enable fdfs_trackerd_startup.service
      
      • 1
      • 2

    同理,storage服务和nginx自启动的配置类似。

    6. 通过web端访问fastdfs资源

    不在赘述。

  • 相关阅读:
    动静分离LNMP
    HDU - 1024 Max Sum Plus Plus(DP)
    轧钢切头飞剪机设计及有限元分析
    【数据库原理及应用】为什么要学习数据库?数据库的由来和发展以及数据库和数据管理系统是什么?
    2022年,是危机还是新的机遇?
    计算机毕业论文基于Python实现的学生求职招聘兼职平台
    LoRaWan模块应用于智慧城市景观灯
    解析java中的文件字符输入流
    如何解决跨域?
    mysql中explain使用说明
  • 原文地址:https://blog.csdn.net/qq_45691577/article/details/127813319