在 Ubuntu 上安装部署 FastDFS(分布式文件系统)分为以下步骤。这里以 FastDFS v6.11 为例(最新稳定版),包含 Tracker Server、Storage Server 和 Nginx 模块(提供 HTTP 访问):
一、安装依赖
sudo apt update
sudo apt install -y git gcc make automake autoconf libtool pkg-config libssl-dev libpcre3-dev zlib1g-dev
二、安装 libserverframe
- 安装 libserverframe
git clone https://github.com/happyfish100/libserverframe.git --depth 1
cd libserverframe
sudo ./make.sh clean
sudo ./make.sh && sudo ./make.sh install
- 创建必要符号链接
修复头文件路径问题
sudo ln -s /usr/include/sf /usr/include/fastcommon/sf
修复库文件路径问题
sudo ldconfig
三、安装 libfastcommon(基础库)
下载源码
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon
编译安装
sudo ./make.sh clean
sudo ./make.sh && sudo ./make.sh install
确认库文件路径(通常安装到 /usr/lib64 或 /usr/lib)
sudo ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so # 如果提示找不到则执行
四、安装 FastDFS
下载源码
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs
编译安装
sudo ./make.sh clean
sudo ./make.sh && sudo ./make.sh install
默认安装路径 配置文件:/etc/fdfs 可执行文件:/usr/bin
五、配置 Tracker Server
- 复制配置文件
sudo cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
- 修改配置(/etc/fdfs/tracker.conf)
修改以下关键参数
port=22122
base_path=/data/fastdfs/tracker # Tracker 数据目录(需提前创建)
store_group=group1 # 存储组名(默认)
http.server_port=8080 # 内置 HTTP 服务端口(可选)
- 创建目录并启动
sudo mkdir -p /data/fastdfs/tracker
sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
- 设置开机自启
sudo systemctl enable fdfs_trackerd # 如果已生成 systemd 服务
六、配置 Storage Server
- 复制配置文件
sudo cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
- 修改配置(/etc/fdfs/storage.conf)
group_name=group1 # 需与 Tracker 的 store_group 一致
port=23000 # Storage 服务端口
base_path=/data/fastdfs/storage # Storage 数据目录(需创建)
store_path0=/data/fastdfs/storage/files # 实际文件存储路径
tracker_server=192.168.1.100:22122 # 替换为你的 Tracker 服务器 IP
http.server_port=8888 # 内置 HTTP 端口(可选)
- 创建目录并启动
sudo mkdir -p /data/fastdfs/storage/files
sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf start
- 检查状态
sudo /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
应看到 Storage 注册到 Tracker 的信息
七、安装 Nginx + FastDFS 模块(提供 HTTP 访问) 使用官方 Nginx 模块 fastdfs-nginx-module
- 下载模块
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
- 安装 Nginx 并整合模块
下载 Nginx 源码(以 1.24.0 为例)
wget http://nginx.org/download/nginx-1.24.0.tar.gz
tar -zxvf nginx-1.24.0.tar.gz
cd nginx-1.24.0
配置编译(添加 fastdfs-nginx-module)
./configure --add-module=/path/to/fastdfs-nginx-module/src
make && sudo make install
默认安装路径: /usr/local/nginx
- 配置 Nginx • 复制 FastDFS 的 HTTP 配置文件:
sudo cp /path/to/fastdfs/conf/http.conf /etc/fdfs/
sudo cp /path/to/fastdfs/conf/mime.types /etc/fdfs/
• 复制模块配置文件:
sudo cp /path/to/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
• 修改/etc/fdfs/mod_fastdfs.conf:
tracker_server=192.168.1.100:22122 # Tracker IP
url_have_group_name=true
store_path0=/data/fastdfs/storage/files
• 编辑 Nginx 配置(/usr/local/nginx/conf/nginx.conf):
server {
listen 80;
server_name your_domain.com; # 替换为你的域名/IP
location /group1/M00 { alias /data/fastdfs/storage/files/data; # 指向存储路径
ngx_fastdfs_module; # 调用 FastDFS 模块
}
}
- 启动 Nginx
sudo /usr/local/nginx/sbin/nginx
八、测试上传文件
- 复制客户端配置
sudo cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
- 修改 client.conf
base_path=/tmp
tracker_server=192.168.1.100:22122 # Tracker IP
- 上传测试文件
echo "Hello FastDFS" > test.txt
fdfs_upload_file /etc/fdfs/client.conf test.txt
返回示例:group1/M00/00/00/rB8AB2WvXZ-AUQ9zAAAAD6Gd_Us123.txt
- 通过 HTTP 访问文件 在浏览器打开(假设服务器 IP 为 192.168.1.100): http://192.168.1.100/group1/M00/00/00/rB8AB2WvXZ-AUQ9zAAAAD6Gd_Us123.txt
常见问题解决
- 端口冲突:确保 22122(Tracker)、23000(Storage)、80(Nginx)端口开放。
- 文件路径权限:用 sudo chmod -R 777 /data/fastdfs 临时解决权限问题(生产环境需细化权限)。
- Nginx 返回 404:检查 mod_fastdfs.conf 中路径是否与 storage.conf 的 store_path0 一致。
- Tracker 与 Storage 无法通信:检查防火墙设置(sudo ufw allow 22122,23000,80 或 sudo firewall-cmd --zone=public --add-port=23000/tcp)。 完整文档参考:FastDFS GitHub Wiki

