FastDFS 支持集群部署,这里我仅仅使用一台虚拟机来进行测试,会对集群部署的点进行讲解(Nginx、单点 Tracker Server、单点 Storage Server 进行安装)。我会先安装 Nginx,然后安装单点 Tracker Server、单点 Storage Server ,最后整合 FastDFS-Nginx-Module。

  • 服务器:centos7

  • Nginx:nginx-1.12.2

  • FastDFS:FastDFS_v5.05

  • FastDFS-Nginx-Module:fastdfs-nginx-module_v1.16

  • libfastcommon:libfastcommonV1.0.7

    资源下载:百度网盘链接 algl

将下载好的资源 上传到服务器

安装Nginx

详见《Centos7 离线安装Nginx及配置HTTPS》

FastDFS安装

安装依赖库

yum install gcc-c++
yum -y install libevent

安装 libfastcommon

libfastcommon 是 FastDFS 官方提供的,libfastcommon 包含了 FastDFS 运行所需要的一些基础库。该库上面我有提供下载地址。

tar -zxvf libfastcommonV1.0.7.tar.gz
cd libfastcommon-1.0.7/
./make.sh
./make.sh install

注意:libfastcommon 安装好后会自动将库文件拷贝至 /usr/lib64 下,由于 FastDFS 程序引用usr/lib 目录所以需要将 /usr/lib64 下的库文件拷贝至 /usr/lib 下。

编译并安装

# 解压
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
# make
./make.sh
./make.sh install

安装成功将安装目录下的 conf 下的文件拷贝到 /etc/fdfs/ 下:

cp -a conf/* /etc/fdfs/

配置Tracker

先创建 FastDFS目录:(修改配置文件时需要该目录)

mkdir -p /home/FastDFS

修改 tracker.conf vi /etc/fdfs/tracker.conf

修改内容如下

base_path=/home/yuqing/FastDFS 改为:base_path=/home/FastDFS
http.server_port=8080 改为 http.server_port=80

启动Tracker

# 启动命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart

# 查看是否启动
ps -ef | grep fdfs

配置Storage

创建文件存储目录fdfs_storage

mkdir -p /home/FastDFS/fdfs_storage

修改storage.conf vi /etc/fdfs/storage.conf

修改内容如下:

group_name=group1
base_path=/home/yuqing/FastDFS 改为 base_path=/home/FastDFS

store_path0=/home/yuqing/FastDFS 改为store_path0=/home/FastDFS/fdfs_storage
#如果有多个挂载磁盘则定义多个store_path,如下
#store_path1=.....
#store_path2=......

tracker_server=192.168.1.217:22122 # 配置 Tracker 服务器:IP
#如果有多个则配置多个 Tracker
#tracker_server=192.168.1.218:22122
#tracker_server=192.168.1.219:22122

#配置http端口
http.server_port=80

启动Storage

# 启动命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart

# 查看是否启动
ps -ef | grep fdfs

上传图片测试

将一张名为 picture.jpg 的图片上传到 /root 目录下,使用这张图片进行上传图片测试。

FastDFS 安装成功可通过 /usr/bin/fdfs_test 测试上传、下载等操作。这里我们需要修改 /etc/fdfs/client.conf 配置文件:vi /etc/fdfs/client.conf

修改内容如下:

base_path=/home/yuqing/fastdfs 改为 base_path=/home/FastDFS
tracker_server 改为 tracker_server=192.168.1.217:22122

使用👇格式命令上传文件

#命令格式
/usr/bin/fdfs_test 客户端配置文件地址 upload 上传文件

#测试命令
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /root picture.jpg

上传成功后会显示上传图片等信息,可以根据返回信息中提供文件信息去 /home/FastDFS/fdfs_storage/ 目录下查看我们刚刚上传好的图片。至此说明 FastDFS 的单点 Tracker 和 单点 Storage 都已经安装成功了。

配置FastDFS-Nginx-Module

我们已经安装和测试好了 FastDFS,但是如果我们上传的是图片,那我们如何在浏览器中查看图片呢?这个就需要结合 Nginx 来进行配置了,目前我们把 FastDFS 和 Nginx 都安装好了,那么还需要一个 FastDFS-Nginx-Module 模块来完成这个任务,接下来我们就一起来配置一下 FastDFS-Nginx-Module 模块。

解压 fastdfs-nginx-module_v1.16.tar.gz,修改 config 文件路径

解压FastDFS-Nginx-Module:tar -zxvf fastdfs-nginx-module_v1.16.tar.gz

进入安装目录下的 src 文件夹: cd fastdfs-nginx-module/src/

修改config: vi config

#将:
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/local/lib -lfastcommon -lfdfsclient"
#修改为:
CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
CORE_LIBS="$CORE_LIBS -L/usr/lib -lfastcommon -lfdfsclient"
#去掉了路径中的local

设置配置文件

将 fastdfs-nginx-module/src 下的 mod_fastdfs.conf 拷贝至 /etc/fdfs/ 下,并修改mod_fastdfs.conf 的内容

cp mod_fastdfs.conf /etc/fdfs/

vim /etc/fdfs/mod_fastdfs.conf

#------------------------修改内容------------------------
base_path=/home/FastDFS

tracker_server=192.168.1.217:22122
#如果有多台,继续配置即可,例如:tracker_server=192.168.1.218:22122

url_have_group_name=true #url中包含group名称

store_path0=/home/FastDFS/fdfs_storage #指定文件存储路径
#如果有多个,如下配置:store_path1=/home/FastDFS/fdfs_storage1

#将 libfdfsclient.so 拷贝至 /usr/lib 下:
cp /usr/lib64/libfdfsclient.so /usr/lib/

#创建 nginx/client 目录
mkdir -p /var/temp/nginx/client

添加 FastDFS-Nginx-Module 模块

配置完成后,然后进入 Nginx 安装目录,执行添加模块命令:

#进入nginx安装目录
cd /***/nginx-1.12.2 # ***对应的路径

#执行添加模块命令
./configure --add-module=/***/fastdfs-nginx-module/src
make && make install

修改 Nginx 配置文件,测试图片访问

vi /usr/local/nginx/conf/nginx.conf

server {
listen 80;
server_name 192.168.1.217;

location /group1/M00/{
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}

重启Nginx

systemctl restart nginx.service

测试:之前测试FastDFS上传过一张图片,上传成功后返回图片地址,用浏览器打开看图片是否显示即可,至此 FastDFS-Nginx-Module 配置完成。如果访问不了,请在防火墙开启80端口的访问权限。