安装相关工具 (以 CentOS为例)
# 安装编译环境
yum install -y gcc-c++ perl
libfastcommon (FastDFS使用的依赖库)
下载源码
# 使用 git clone 下载
git clone https://github.com/happyfish100/libfastcommon.git
# 或者使用 wget 等直接下载 zip 包,并解压
wget https://github.com/happyfish100/libfastcommon/archive/refs/heads/master.zip -O libfastcommon.zip
unzip libfastcommon.zip
编译安装
cd libfastcommon
# 编译并安装
./make.sh && ./make.sh install
FastDFS
下载源码
# 使用 git clone 下载
git clone https://github.com/happyfish100/fastdfs.git
# 或者使用 wget 等直接下载 zip 包,并解压
wget https://github.com/happyfish100/fastdfs/archive/refs/heads/master.zip -O fastdfs.zip
unzip fastdfs.zip
编译安装
cd fastdfs
# 编译并安装
./make.sh && ./make.sh install
配置 FastDFS 并启动相关进程
配置文件目录
# 切换到配置文件目录
cd /etc/fdfs/
配置 Tracker (FastDFS跟踪器)
修改 tracker.conf
# 配置文件是否不生效,false 为生效
disabled = false
# 提供服务的端口
port=22122
# Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建
base_path = /data01/fastdfs/tracker
# HTTP 服务端口
http.server_port = 8080
创建 tracker 基础数据目录,即base_path对应的目录
mkdir -p /data01/fastdfs
启动 Tracker
fdfs_trackerd /etc/fdfs/tracker.conf start
关闭 Tracker(如需要)
fdfs_trackerd /etc/fdfs/tracker.conf stop
多节点配置
在各节点按如上方法安装好之后,将配置文件/etc/fdfs/tracker.conf 拷贝到各节点启动即可
配置 Storage (FastDFS 存储)
修改 storage.conf
# 配置文件是否不生效,false 为生效
disabled=false
# 组名,相同组名的节点互为备份,即存储的数据完全相同
group_name=group1
# storage server 服务端口
port=23000
# Storage 数据和日志目录地址(根目录必须存在,子目录会自动生成)
base_path=/data01/fastdfs/storage
# 存放文件时 storage server 支持多个路径。这里配置存放文件的基路径数目,通常只配一个目录。
store_path_count=2
# 如果不配置 store_path0,那它就和 base_path 对应的路径一样。数据与如上配置对应
store_path0 = /data01/fastdfs_data
store_path1 = /data02/fastdfs_data
# tracker_server 的列表 ,会主动连接 tracker_server
# 有多个 tracker server 时,每个 tracker server 写一行
tracker_server=10.0.0.1:22122
tracker_server=10.0.0.2:22122
# 访问端口
http.server_port=80
创建 storage 基础数据目录,即base_path对应的目录
mkdir -p /data01/fastdfs/storage
mkdir -p /data01/fastdfs_data
mkdir -p /data02/fastdfs_data
启动 storage
fdfs_storaged /etc/fdfs/storage.conf start
关闭 storage(如需要)
fdfs_storaged /etc/fdfs/storage.conf stop
多节点配置
在各节点按如上方法安装好之后,将配置文件/etc/fdfs/storage.conf 拷贝到各节点启动即可
配置 Client
修改 client.conf
# 根据自己地址指定一个即可
base_path = /data01/fastdfs/client
# tracker server地址
tracker_server = 10.0.0.1:22122
测试文件上传
# 上传 test_file.txt
fdfs_upload_file /etc/fdfs/client.conf test_file.txt
得到类似如下返回,即上传成功
group1/M00/00/00/CgADHF57AKaADvJdAAAHYyTJSr064.txt
安装配置 Nginx
安装 fastdfs-nginx-module 模块
# 使用 git clone 下载
git clone https://github.com/happyfish100/fastdfs-nginx-module.git
# 或者使用 wget 等直接下载 zip 包,并解压
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/refs/heads/master.zip -O fastdfs-nginx-module.zip
unzip fastdfs-nginx-module.zip
安装 Nginx,并添加 fastdfs-nginx-module 模块
进入 nginx 源码 目录
cd /path/of/nginx-src
进行配置检测并且添加模块,执行编译安装
# 修改路径为下载的 fastdfs-nginx-module 模块路径
./configure --add-module=/home/software/fastdfs-nginx-module-master/src
# 编译并安装
make && make install
配置 Nginx 并启动 Nginx
配置 FastDFS 与 Ngix 相关的配置
切换至fastdfs的源码路径
# 进行文件的复制
cp conf/http.conf /etc/fdfs/
cp conf/mime.types /etc/fdfs/
切换至fastdfs-nginx-module的源码路径
#进行配置文件的复制
cp src/mod_fastdfs.conf /etc/fdfs/
修改 /etc/fdfs/mod_fastdfs.conf
# 连接超时时间
connect_timeout=10
# Tracker Server
tracker_server=10.0.0.1:22122
# Storage Server 默认端口
storage_server_port=23000
# 修改为true 支持http 直接下载
url_have_group_name = true
# 与 /etc/fdfs/storege.conf 保持一致
store_path_count=2
# 与 /etc/fdfs/storege.conf 保持一致
store_path0 = /data01/fastdfs_data
store_path1 = /data02/fastdfs_data
配置 Nginx
修改 /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
# 增加这一行
location ~/group([0-9])/M00 {
ngx_fastdfs_module;
}
注意:
listen 80 端口值是要与
相对应。如果改成其它端口,则需要统一,同时在防火墙中打开该端口。/etc/fdfs/storage.conf
` 中的
`http.server_port=80
location 的配置,如果有多个group则配置location ~/group([0-9])/M00 ,没有则不用配group。
测试下载
# localhost 后的地址需要与之前上传测试文件的返回值一致
wget http:://localhost/group1/M00/00/00/CgADHF57AKaADvJdAAAHYyTJSr064.txt
如果正常下载,则 FastDFS 配置完成