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
1、安装依赖库:
- 安装 GCC(命令:
yum install gcc
) - 安装 PCRE(命令:
yum install pcre-devel
) - 安装 ZLib(命令:
yum install zlib zlib-devel
) - 安装 OpenSSL(命令:
yum install openssl openssl-devel
)
综合命令:yum -y install gcc pcre-devel zlib zlib-devel openssl openssl-devel
2、解压nginx-1.12.2.tar.gz:tar -zxvf nginx-1.12.2.tar.gz
3、安装Nginx:
- 先进入到
/nginx-1.12.2
cd nginx-1.12.2
使用以下命令安装 Nginx:(./configure 默认安装位置为 /usr/local/nginx,可以使用参数 --prefix=/usr/nginx 进行修改)
./configure
make
make install
4、测试配置文件:
测试配置文件是否正确,我们先进入到 /usr/local/nginx/sbin 目录,执行以下命令:
cd /usr/local/nginx/sbin
./nginx -t
5、启动Nginx:./nginx
使用curl 测试Nginx是否启动成功:curl localhost
6、添加到守护进程
1)在系统服务目录里创建nginx.service文件
vim /etc/systemd/system/nginx.service
内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
部分参数说明:
[Unit]:服务的说明
Description:描述服务
After:描述服务类别
[Service]服务运行参数的设置
Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径
[Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3
2)设置开机自启动:systemctl enable nginx.service
停止开机自启动:systemctl disable nginx.service
查看服务当前状态:systemctl status nginx.service
重新启动服务:systemctl restart nginx.service
查看所有已启动的服务:systemctl list-units --type=service
FastDFS安装
1、安装依赖库:
yum install gcc-c++
yum -y install libevent
2、安装 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 下。
cp /usr/lib64/libfastcommon.so /usr/lib/
3、安装 FastDFS
# 解压
tar -zxvf FastDFS_v5.05.tar.gz
cd FastDFS
# make
./make.sh
./make.sh install
安装成功将安装目录下的 conf 下的文件拷贝到 /etc/fdfs/ 下:
cp -a conf/* /etc/fdfs/
4、配置 Tracker
安装成功后进入 /etc/fdfs 目录,我们要对 tracker.conf 配置文件进行修改:
a) 在 /home 目录下新建 FastDFS 目录:
cd /home/
mkdir FastDFS
b) 修改 tracker.conf:
cd /etc/fdfs/
vim tracker.conf
#----------------------------修改内容如下----------------------------
base_path=/home/yuqing/FastDFS 改为:base_path=/home/FastDFS
http.server_port=8080 改为 http.server_port=80
如果配置 Tracker 集群,主需要在多台服务器上安装 FastDFS,然后配置 Tracker 即可。
5、启动 Tracker
使用命令启动 Tracker,然后查询是否启动。
# 启动命令
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
# 查看是否启动
ps -ef | grep fdfs
6、配置 Storage
由于我只使用一台vps进行模拟安装,就无需再次安装 FastDFS 了,如果你需要集群部署,比如你有三台机器:192.168.1.101、192.168.1.102、192.168.1.103,那么你需要在每台机器上都执行“安装 FastDFS”和“配置 Storage”即可,这里仅仅使用一台vps进行演示。
安装成功后进入 /etc/fdfs 目录,我们要对 storage.conf 配置文件进行修改:
a) 在 /home/FastDFS 目录下新建 fdfs_storage 目录:
cd /home/FastDFS
mkdir fdfs_storage
b) 修改 storage.conf:
cd /etc/fdfs/
vim 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
7、启动 Storage
使用命令启动 Storage,然后查询是否启动。
# 启动命令
/usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
# 查看是否启动
ps -ef | grep fdfs
8、上传图片测试
这里我将一张名为 picture.jpg 的图片上传到 /root 目录下,使用这张图片进行上传图片测试。
FastDFS 安装成功可通过 /usr/bin/fdfs_test 测试上传、下载等操作。这里我们需要修改 /etc/fdfs/client.conf 配置文件:
vim 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 都已经安装成功了。
9、配置 FastDFS-Nginx-Module
我们已经安装和测试好了 FastDFS,但是如果我们上传的是图片,那我们如何在浏览器中查看图片呢?这个就需要结合 Nginx 来进行配置了,目前我们把 FastDFS 和 Nginx 都安装好了,那么还需要一个 FastDFS-Nginx-Module 模块来完成这个任务,接下来我们就一起来配置一下 FastDFS-Nginx-Module 模块。
a)解压 fastdfs-nginx-module_v1.16.tar.gz,修改 config 文件路径:
#解压FastDFS-Nginx-Module
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
#进入安装目录下的 src 文件夹
cd /home/software/fastdfs-nginx-module/src/
#修改 config 文件
vim 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
b) 将 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
c) 添加 FastDFS-Nginx-Module 模块
配置完成后,然后进入 Nginx 安装目录,执行添加模块命令:
#进入nginx安装目录
cd /home/software/nginx-1.12.2
#执行添加模块命令
./configure --add-module=/home/software/fastdfs-nginx-module/src
make
make install
d) 修改 Nginx 配置文件,测试图片访问
上面的配置完成后,我们需要修改一下 Nginx 的配置文件,进入 Nginx 目录,使用以下命令操作:
# 进入 Nginx 目录
cd /usr/local/nginx/conf
#修改配置文件
vim nginx.conf
#------------------------修改内容------------------------
#修改配置文件的 server 部分,如下所示:
server {
listen 80;
server_name 192.168.1.217;
location /group1/M00/{
root /home/FastDFS/fdfs_storage/data;
ngx_fastdfs_module;
}
}
f) 配置完成后,启动 Nginx:
#进入目录
cd /usr/local/nginx/sbin/
#启动 Nginx
./nginx
# 查看 Nginx 进程
ps -ef | grep nginx
测试:之前测试FastDFS上传过一张图片,上传成功后返回图片地址,用浏览器打开看图片是否显示即可,至此 FastDFS-Nginx-Module 配置完成。如果访问不了,请在防火墙开启80端口的访问权限。
本文参考由浅入深了解 FastDFS 分布式文件系统
感谢:AlanShelby