编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

从零开始搭建单机FastDFS(fastdfs搭建需要几台服务器)

wxchong 2024-08-19 23:54:53 开源技术 8 ℃ 0 评论

准备阶段

准备linux服务器或虚拟机

Tracker 和 Storage 安装在一台机器上

下载需要的安装包并上传到linux服务器目录下

FastDFS下载地址:https://github.com/happyfish100

Tengine下载地址:http://tengine.taobao.org/



安装FastDFS依赖

FastDFS是C语言开发的应用。安装必须使用make、cmake和gcc编译器。

yum install -y make cmake gcc gcc-c++

安装FastDFS核心库

解压上传的llibfastcommon-1.0.43.tar.gz,然后将libfastcommon-1.0.43移动到 /usr/local/fastdfs目录下

进入到/usr/local/fastdfs/libfastcommon-1.0.43目录下

编译

./make.sh

安装

./make.sh install

默认安装位置在/usr/lib64和/usr/include/fastcommon两个目录中。

创建软连接

ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so

ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so

ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so

ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

FastDFS主程序安装

解压fastdfs-6.06.tar.gz文件,并将解压后的fastdfs-6.06文件夹移动到 /usr/local/fastdfs/

tar -zxvf fastdfs-6.06.tar.gz

mv fastdfs-6.06 /usr/local/fastdfs/

编译安装

进入到/usr/local/fastdfs/fastdfs-6.06 执行

./make.sh

./make.sh install

安装后,FastDFS主程序所在位置:

/usr/bin - 可执行文件所在位置。

/etc/fdfs - 配置文件所在位置。

/usr/lib64 - 主程序代码所在位置

/usr/include/fastdfs - 包含的一些插件组所在位置

服务配置

序脚本

在/etc/init.d/目录中,脚本文件是 fdfs-storagedfdfs-trackerd

配置文件

配置文件在/etc/fdfs/目录中

  • tracker.conf.sample - 跟踪器服务配置文件模板
  • storage.conf.sample - 存储服务器配置文件模板
  • client.conf.sample - FastDFS提供的命令行客户端配置文件模板。可以通过命令行测试FastDFS有效性
  • Tracker 服务配置

    修改配置文件

    复制一份模板配置文件

    cd /etc/fdfs

    cp tracker.conf.sample tracker.conf

    创建/usr/local/fastdfs/fastdfs-tracker文件夹

    vim tracker.conf

    改 base_path 路径,base_path FastDFSTracker启动后使用的根目录,用来存放Tracker data和logs

    base_path=/usr/local/fastdfs/fastdfs-tracker

    启动Tracker

    /etc/init.d/fdfs_trackerd start

    启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)

    查看服务状态


    ps -ef | grep fdfs

    停止服务

    /etc/init.d/fdfs_trackerd stop

    重启服务

    /etc/init.d/fdfs_trackerd restart


    Storage 服务

    配置文件

    cd /etc/fdfs

    cp storage.conf.sample storage.conf

    mkdir -p /usr/local/fastdfs/fastdfs-storage/base

    mkdir -p /usr/local/fastdfs/fastdfs-storage/store

    修改storage.conf配置文件

    vim storage.conf

    base_path=/usr/local/fastdfs/fastdfs-storage/base

    store_path0=/usr/local/fastdfs/fastdfs-storage/store

    tracker_server=192.168.152.139:22122

  • base_path - 基础路径。用于保存storage server基础数据内容和日志内容的目录。
  • store_path0 - 存储路径。是用于保存FastDFS中存储文件的目录,就是要创建256*256个子目录的位置。base_path和store_path0可以使用同一个目录。
  • tracker_server - 跟踪服务器位置。就是跟踪服务器的ip和端口。
  • 启动服务

    要求tracker服务必须已启动

    /etc/init.d/fdfs_storaged start

    启动成功后,配置文件中base_path指向的目录中出现FastDFS服务相关数据目录(data目录、logs目录)

    配置文件中的store_path0指向的目录中同样出现FastDFS存储相关数据录(data目录)

    其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总计256*256个目录),是用于存储具体文件数据的。

    Storage服务器启动比较慢,因为第一次启动的时候,需要创建256*256个目录。

    查看服务状态

    /etc/init.d/fdfs_storaged status

    停止服务

    /etc/init.d/fdfs_storaged stop

    重启服务

    /etc/init.d/fdfs_storaged restart

    配置Client端

    修改配置文件

    cd /etc/fdfs

    cp client.conf.sample client.conf

    mkdir -p /usr/local/fastdfs/fastdfs-client

    client.conf配置文件中主要描述客户端的行为,需要进行下述修改:

    vim client.conf

    base_path= /usr/local/fastdfs/fastdfs-client

    tracker_server=192.168.152.1398:22122

    base_path - 就是客户端命令行执行过程时临时数据存储位置。

    校验整合

    FastDFG的东西都已安装完成,最后我们还要确定一下,storage是否注册到了tracker中去

    /usr/bin/fdfs_monitor /etc/fdfs/storage.conf


    测试上传文件

    在根目录下上传一个123.jpg用作测试上传文件

    /usr/bin/fdfs_upload_file /etc/fdfs/client.conf /123.jpg


    上传结束后,返回group1/M00/00/00/xxxxxxxxxx.xxx,检查storage服务结点中的$store_path0/data/00/00/目录中是否有上传的文件(一般情况上传的文件按顺序保存在$store_path0/data/00/00/目录中,不能完全保证)。


    上传文件结果:group1/M00/00/00/wKiYi16K6NOATtArAAF3eLG6Dmw260.jpg

  • 组名:group1文件上传后所在的storage组名称,在文件上传成功后有storage服务器返回,需要客户端自行保存。
  • 虚拟磁盘路径:M00 storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
  • 数据两级目录:/00/00 storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
  • 文件名:wKiYi16K6NOATtArAAF3eLG6Dmw260.jpg
  • 测试删除文件

    /usr/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKiYi16K6NOATtArAAF3eLG6Dmw260.jpg


    Nginx组件

    如果FastDFS中保存的是图片信息。希望在WEB应用中可以直接访问FastDFS中的图片进行显示。如果操作?

    安装Nginx是为了WEB应用中可以使用HTTP协议直接访问Storage服务中存储的文件。在storage结点所在服务器安装Nginx组件。

    需要安装两部分内容。

    Nginx应用,在安装nginx应用的时候,同时要在nginx中增加一个FastDFS的组件。

    fastdfs-nginx-module模块

    解压fastdfs-nginx-module-1.22.tar.gz,并把解压后的文件夹移动到/usr/local/fastdfs/

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

    mv fastdfs-nginx-module-1.22 /usr/local/fastdfs/

    修改配置

    vim /usr/local/fastdfs/fastdfs-nginx-module-1.22/src/config

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

    编译安装Nginx

    cd /usr/local/fastdfs/installpackage/tengine-2.3.2

    ./configure --prefix=/usr/local/tengine --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src/

    make && make install

    配置fastdfs-nginx-module

    拷贝配置文件

    cd /usr/local/fastdfs/fastdfs-nginx-module-1.22/src

    cp mod_fastdfs.conf /etc/fdfs/

    修改配置文件 mod_fastdfs.conf

    tracker_server=192.168.152.139:22122

    url_have_group_name = true

    store_path0=/usr/local/fastdfs/fastdfs-storage/store

    路径和storage中的store_path0路径必须相同

    拷贝http服务需要的配置

    复制FastDFS安装包中的两个配置文件(http.conf和mime.types)到/etc/fdfs目录中

    /usr/local/fastdfs/fastdfs-6.06/conf

    cp http.conf /etc/fdfs/

    cp mime.types /etc/fdfs/

    创建网络访问存储服务的软连接

    在上传文件到FastDFS后,FastDFS会返回group1/M00/00/00/xxxxxxxxxx.xxx。其中group1是卷名,在mod_fastdfs.conf配置文件中已配置了url_have_group_name,以保证URL解析正确。

    而其中的M00是FastDFS保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。

    ln -s /usr/local/fastdfs/fastdfs-storage/store/data/ /usr/local/fastdfs/fastdfs-storage/store/data/M00

    修改nginx配置文件

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

    ngx_fastdfs_module;

    }

    访问地址即可打开或下载文件

    http://192.168.152.139/group1/M00/00/00/wKiWC10xxc6AfHCKAAAib-i5DLU543_big.log

    下载文件时指定文件名添加

    正在ngx_fastdfs_module;前面加上面下这个配置

    add_header Content-Disposition "attachment;filename=$arg_attname";

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表