FastDFS(一) FastDFS安装

安装

准备两个 Linux 服务器。两个服务器分别作为 tracker 服务器(跟踪服务器)和 storage服务器(存储服务器)。

Tracker 服务器 : 192.168.2.109

Storage 服务器 : 192.168.2.110

课上环境中,所有的安装包都存放在/root/upload 目录中。解压后的安装包根据具体命令查看。(/usr/local/fastdfs)


1 核心安装

Tracker Server 和 Storage Server 完全一致的安装。

安装 FastDFS 5.08 版本

1.1 安装 FastDFS  依赖

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

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

1.2 解压 FastDFS  核心库

libfastcommon 是从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库

cd /root/upload

unzip libfastcommon-master.zip -d /usr/local/fastdfs

1.3 进入解压后的目录

cd /usr/local/fastdfs/libfastcommon-master

1.4 编译安装

libfastcommon 没有提供 make 命令安装文件。使用的是 shell 脚本执行编译和安装。shell脚本为 make.sh

编译

./make.sh

安装

./make.sh install

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

1.5 创建软连接

因为 FastDFS 主程序设置的 lib 目录是/usr/local/lib,所以需要创建软链接

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

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

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

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

1.6 解压 FastDFS  主程序

本案例使用 5.08 版本 FastDFS。

cd /root/upload

tar -zxf FastDFS_v5.08.tar.gz -C /usr/local/fastdfs

1.7 进入 FastDFS  主程序源码目录

cd /usr/local/fastdfs/FastDFS

1.8 修改安装路径

此操作可选。在集群环境中使用默认安装路径安装。两种安装方式都尝试一下。

vi /usr/local/fastdfs/FastDFS/make.sh

TARGET_PREFIX=$DESTDIR/usr -> TARGET_PREFIX=$DESTDIR/usr/local

1.9 编译安装

./make.sh

./make.sh install

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

/usr/local/bin - 可执行文件所在位置。默认安装在/usr/bin 中。

/etc/fdfs - 配置文件所在位置。就是默认位置。

/usr/local/lib64 - 主程序代码所在位置。默认在/usr/bin 中。

/usr/local/include/fastdfs - 包含的一些插件组所在位置。默认在/usr/include/fastdfs 中。

1.10 FastDFS  安装后资源简介

1.10.1  服务脚本

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

ls /etc/init.d/ | grep fdfs

1.10.2  配置文件模板

/etc/fdfs/ 目 录 中 , 配 置 文 件 是 - client.conf.sample 、 storage.conf.sample 和tracker.conf.sample

ls /etc/fdfs/

tracker.conf.sample - 跟踪器服务配置文件模板

storage.conf.sample - 存储服务器配置文件模板

client.conf.sample - FastDFS 提供的命令行客户端配置文件模板。可以通过命令行测试FastDFS 有效性。

1.10.3  内置命令

/usr/local/bin/目录中。命令有若干。可通过命令在控制台访问 FastDFS。

ls /usr/local/bin/ | grep fdfs

以上为通用安装, FastDFS 的跟踪服务和存储服务是通过配置实现的。后续内容为跟踪服务和存储服务的具体配置。

2  tracker 基础配置

只在 tracker server 节点中配置。192.168.2.109

2.1 创建跟踪服务配置文件

FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。

cd /etc/fdfs

cp tracker.conf.sample tracker.conf

2.2 修改配置文件

tracker.conf 配置文件用于描述跟踪服务的行为,需要进行下述修改:

vi /etc/fdfs/tracker.conf

port=22122 # 默认服务端口

base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/tracker (自定义目录)

base_path 是 FastDFSTracker 启动后使用的根目录。也就是 data 和 logs 所在位置。

2.3 创建自定义目录

为配置文件中定义的 base_path 变量创建对应的目录。

mkdir -p /fastdfs/tracker

2.4 修改启动服务脚本

vi /etc/init.d/fdfs_trackerd

将 PRG=/usr/bin/fdfs_trackerd 修改为 PRG=/usr/local/bin/fdfs_trackerd

2.5 启动服务

/etc/init.d/fdfs_trackerd start

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

2.6 查看服务状态

/etc/init.d/fdfs_trackerd status

ps aux | grep fdfs

2.7 停止服务

/etc/init.d/fdfs_trackerd stop

2.8 重启服务

/etc/init.d/fdfs_trackerd restart

2.9 设置开启自启

vi /etc/rc.d/rc.local

新增内容 - /etc/init.d/fdfs_trackerd start


3 storage  基础配置

只在 storage server 中配置。192.168.2.100

3.1 创建存储服务配置文件

FastDFS 提供了配置文件模板,可以根据模板创建需要使用的配置文件。

cd /etc/fdfs

cp storage.conf.sample storage.conf

3.2 修改配置文件

storage.conf 配置文件用于描述存储服务的行为,需要进行下述修改:

vi /etc/fdfs/storage.conf

base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/storage/base (自定义目录)

store_path0=/home/yuqing/fastdfs -> store_path0=/fastdfs/storage/store (自定义目录)

tracker_server=192.168.2.109:22122 -> tracker_server=tracker 服务 IP:22122

base_path - 基础路径。用于保存 storage server 基础数据内容和日志内容的目录。

store_path0 - 存储路径。是用于保存 FastDFS 中存储文件的目录,就是要创建 256*256个子目录的位置。

base_path 和 store_path0 可以使用同一个目录。

tracker_server - 跟踪服务器位置。就是跟踪服务器的 ip 和端口。

3.3 创建自定义目录

mkdir -p /fastdfs/storage/base

mkdir -p /fastdfs/storage/store

3.4 修改服务脚本

vi /etc/init.d/fdfs_storaged

将 PRG=/usr/bin/fdfs_storaged 修改为 PRG=/usr/local/bin/fdfs_storaged

3.5 启动服务( 要求 tracker 服务必须已启动

/etc/init.d/fdfs_storaged start

启动成功后,配置文件中 base_path 指向的目录中出现 FastDFS 服务相关数据目录(data目录、logs 目录),配置文件中的 store_path0 指向的目录中同样出现 FastDFS 存储相关数据录(data 目录)。其中$store_path0/data/目录中默认创建若干子孙目录(两级目录层级总计 256*256 个目录),是用于存储具体文件数据的。

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

3.6 查看服务状态

/etc/init.d/fdfs_storaged status

ps aux | grep fdfs

3.7 停止服务

/etc/init.d/fdfs_storaged stop

3.8 重启服务

/etc/init.d/fdfs_storaged restart

3.9 设置开机自启

vi /etc/rc.d/rc.local

新增内容 - /etc/init.d/fdfs_storaged start

因启动前提为 tracker 服务必须已启动,不推荐开启自启。


4 客户端基础配置

不是必须的。就是用于使用命令行测试 FastDFS 才需要配置的。

4.1 创建客户端配置文件

在 tracker 服务结点所在服务器中配置客户端。同样通过配置文件模板创建对应配置文件。

cd /etc/fdfs

cp client.conf.sample client.conf

4.2 修改配置文件

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

vi /etc/fdfs/client.conf

base_path=/home/yuqing/fastdfs -> base_path=/fastdfs/client (自定义目录)

tracker_server=192.168.2.109:22122 -> tracker_server=tracker 服务 IP:22122

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

4.3 创建自定义目录

mkdir -p /fastdfs/client


5 控制台测试 FastDFS

 

命令所在: /usr/local/bin 目录。 (如果在安装 FastDFS 过程中,没有修改 make.sh 文件中的 TARGET_PREFIX 属性值,命令所在为/usr/bin 目录)

5.1 上传文件

/usr/local/bin/fdfs_upload_file /etc/fdfs/client.conf /要上传的文件

上传结束后,返回 group1/M00/00/00/xxxxxxxxxx.xxx,检查 storage 服务结点中的

$store_path0/data/00/00/目录中是否有上传的文件( 一般情况上传的文件按顺序保存在

$store_path0/data/00/00/ 目录中,不能完全保证 )。

课 上 测 试 的 上 传 文 件 结 果 :

group1/M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz

卷名 : group1

文件名 : M00/00/00/wKgCbltTYaeACDWgAAVCLEPUQWI.tar.gz

其中 M00 是一个虚拟目录,相当于 windows 中的快捷方式,引用的是$store_path0/data目录。

5.2 删除文件

/usr/local/bin/fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/xxxxxxx.xxx

删除结束后,检查$store_path0/data/00/00/目录中是否还有文件。


6 安装 Nginx  组件

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

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

需要安装两部分内容。

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

Module。

6.1 解压 fastdfs-nginx-module_v1.16.tar.gz

tar -zxf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/fastdfs

6.2 修改 fastdfs-nginx-module_v1.16.tar.gz  源文件中的配置

此操作必须修改,否则 Nginx 编译会报错。

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

vi /usr/local/fastdfs/fastdfs-nginx-module/src/config

参数是用于配置安装 nginx 中的 FastDFS 组件的时候,在什么位置查找 FastDFS 核心代码。

源数据:

      ngx_addon_name=ngx_http_fastdfs_module
      HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
      NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
      CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
      CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
      CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64
-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

修 改 后 内 容 : ( 如 果 安 装 FastDFS 时 , 没 有 修 改 make.sh 文 件 , 则 改 为 :CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/")

      ngx_addon_name=ngx_http_fastdfs_module
      HTTP_MODULES="$HTTP_MODULES ngx_http_fastdfs_module"
      NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_fastdfs_module.c"
      CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/include/fastcommon/"
      CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
      CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64
-DFDFS_OUTPUT_CHUNK_SIZE='256*1024'
-DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

6.3 安装 Nginx

6.3.1 安装 Nginx  需要的依赖

yum install -y gcc gcc-c++ make automake autoconf libtool pcre pcre-devel

zlib zlib-devel openssl openssl-devel

6.3.2 使用 SFTP  上传文件到 Linux

进入到本地的应用所在目录。

cd /xxxx 目录

sftp 192.168.2.110

输入用户名和密码。使用哪一个用户登录,上传的文件就在该用户对应的主目录下。如:root 用户,上传的文件在/root 目录中。

上传的命令:

put 文件名

下载的命令:

get 文件名

6.3.3 解压 Nginx

tar -zxf nginx-1.8.0.tar.gz -C /usr/local/fastdfs/

6.3.4 进入 Nginx  源码目录

cd /usr/local/fastdfs/nginx-1.8.0/

6.3.5 配置 Nginx  安装信息

./configure \
--prefix=/usr/local/nginx \
--pid-path=/var/run/nginx/nginx.pid \
--lock-path=/var/lock/nginx.lock \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--with-http_gzip_static_module \
--http-client-body-temp-path=/var/temp/nginx/client \
--http-proxy-temp-path=/var/temp/nginx/proxy \
--http-fastcgi-temp-path=/var/temp/nginx/fastcgi \
--http-uwsgi-temp-path=/var/temp/nginx/uwsgi \
--http-scgi-temp-path=/var/temp/nginx/scgi \
--add-module=/usr/local/fastdfs/fastdfs-nginx-module/src

--add-module 必须定义 , 此配置信息是用于指定安装 Nginx 时需要加载的模块 , 如果未指定, Nginx 安装过程不会加载 fastdfs-nginx-module 模块,后续功能无法实现。

6.3.6 创建目录

Nginx 运行时需要创建若干临时文件,如果默认安装不需创建此目录。

mkdir -p /var/temp/nginx

6.3.7 编译安装

make

make install

6.3.8 配置 fastdfs-nginx-module  模块配置文件

复制配置文件/usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf 到/etc/fdfs 目录中

cp /usr/local/fastdfs/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

cd /etc/fdfs/

修改配置文件 mod_fastdfs.conf

vi mod_fastdfs.conf

源配置:

connect_timeout=2 #连接超时时间,单位秒
tracker_server=tracker:22122 #tracker 服务结点
url_have_group_name = false #URL 中是否包含 group 名称
store_path0=/home/yuqing/fastdfs # storage 服务结点的存储位置,与配置storage 结点一致

参考修改值:

connect_timeout=10
tracker_server=192.168.2.109:22122
url_have_group_name = true
store_path0=/fastdfs/storage/store

6.3.9 提供 FastDFS  需要的 HTTP  配置文件

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

cp /usr/local/fastdfs/FastDFS/conf/http.conf /etc/fdfs/

cp /usr/local/fastdfs/FastDFS/conf/mime.types /etc/fdfs/

6.3.10  创建 nginx  启动需要的软连接

创建软连接

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

nginx 启动后,会在默认的 /usr/lib64 目录中查找需要的 so 文件。如果在安装 FastDFS时,修改了 make.sh 文件中的 TARGET_PREFIX 参数,则必须创建此软连接

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

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

在上传文件到 FastDFS 后,FastDFS 会返回 group1/M00/00/00/xxxxxxxxxx.xxx。其中group1 是卷名,在 mod_fastdfs.conf 配置文件中已配置了 url_have_group_name,以保证 URL解析正确。而其中的 M00 是 FastDFS 保存数据时使用的虚拟目录,需要将这个虚拟目录定位到真实数据目录上。

6.3.12  修改 nginx  配置文件

cd /usr/local/nginx/conf

vi nginx.conf

参考修改配置:( 部分配置信息,不要完整复制

user root; # Nginx 需要访问 linux 文件系统,必须有文件系统的权限。User root 代表nginx 访问文件系统的权限是 root 用户权限。如果不开启权限,可能有 404 访问错误。
server{
    listen 8888; # storage 配置中,有 http.server_port=8888 的配置信息,必须一致。配置文件是/etc/fdfs/storaged.conf
    server_name localhost;
    location ~/group([0-9])/M00{
        ngx_fastdfs_module;
    }
}

6.3.13  测试 WEB  访问存储服务中的文件

使用浏览器查看 FastDFS 中保存的文件:

http://ip:8888/group1/M00/00/00/x xxxxxx.xxx

测试上传的文件: group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg

测试 WEB 访问地址:

http://192.168.2.110:8888/group1/M00/00/00/wKgCbltTmv-ASTG2AAAmTx4ns0s172.jpg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

plenilune-望月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值