当前位置: 首页 > news >正文

配置FastDFS的Nginx访问,一下就通了(三)

一、环境信息

  • Linux:CentOS / Rocky / RHEL 系列

  • Nginx:1.24.0

  • FastDFS:5.05

  • fastdfs-nginx-module:1.16

  • fastcommon:1.0.38

fastdfs-nginx-module下载地址,下载后切换代码历史版本至最开始1.16代码位置:

https://github.com/happyfish100/fastdfs-nginx-module

然后修改config配置如下:

目录 /usr/local/src/fastdfs-nginx-module/src

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" ​ CORE_LIBS="$CORE_LIBS -lfastcommon -lfdfsclient" ​ CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"

源码目录:

/usr/local/src

安装目录:

/usr/local/nginx /etc/fdfs

二、编译安装 Nginx + FastDFS 模块

进入 nginx 源码目录:

cd /usr/local/src/nginx-1.24.0

编译配置:

./configure \ --prefix=/usr/local/nginx \ --add-module=/usr/local/src/fastdfs-nginx-module/src

编译安装:

make make install

验证:

/usr/local/nginx/sbin/nginx -V

输出包含:

--add-module=/usr/local/src/fastdfs-nginx-module/src

说明模块编译成功。


三、Nginx 配置

编辑:

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

server 配置:

server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } location ~/group([0-9])/M00 { ngx_fastdfs_module; } }

四、配置 mod_fastdfs.conf

复制模板:

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

修改:

/etc/fdfs/mod_fastdfs.conf

关键参数:

tracker 地址

tracker_server=192.168.2.237:22122

storage 路径

store_path0=/data/fastdfs/storage

URL 是否包含 group

url_have_group_name = true

group 数量

group_count = 1

添加 group 配置:

[group1] group_name=group1 storage_server_port=23000 store_path_count=1 store_path0=/data/fastdfs/storage

五、配置 http.conf 和 mime.types

FastDFS nginx 模块需要这两个文件。

查找:

find /usr/local/src -name http.conf

复制:

cp /usr/local/src/fastdfs-5.05/conf/http.conf /etc/fdfs/ cp /usr/local/src/fastdfs-5.05/conf/mime.types /etc/fdfs/

确认:

ls /etc/fdfs

结果:

client.conf http.conf mime.types mod_fastdfs.conf

六、创建 storage 软链接(非常关键)

FastDFS nginx 模块访问文件依赖M00目录。

创建:

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

目录结构:

/data/fastdfs/storage/data/M00

七、启动 Nginx

启动:

/usr/local/nginx/sbin/nginx

检查:

ps -ef | grep nginx

八、上传测试文件

创建测试文件:

echo "fastdfs test" > test.txt

上传:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf test.txt

返回:

group1/M00/00/00/wKgC7Wmz0KeAA-gQAAAADUid9Xg917.txt

九、浏览器访问测试

访问:

http://192.168.2.237/group1/M00/00/00/wKgC7Wmz0KeAA-gQAAAADUid9Xg917.txt

成功返回:

fastdfs test

说明FastDFS + Nginx 成功部署


十、你遇到的主要问题总结

问题1

编译 nginx 报错

fatal error: common_define.h: No such file or directory

原因

FastDFS 头文件引用方式:

#include "common_define.h"

gcc 默认不会进入:

/usr/include/fastcommon

解决

复制头文件:

cp /usr/include/fastdfs/*.h /usr/include/ cp /usr/include/fastcommon/*.h /usr/include/

问题2

编译报错

fatal error: fdfs_define.h: No such file or directory

原因

FastDFS 头文件路径不在 gcc 默认路径。

解决

复制头文件:

cp /usr/include/fastdfs/*.h /usr/include/

问题3

浏览器访问 FastDFS 文件失败

原因:

/etc/fdfs/mod_fastdfs.conf 为空

nginx 模块无法读取配置。

解决

复制配置:

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

并正确配置 tracker 和 storage。


问题4

nginx 访问文件 404

原因:

缺少 storage 软链接。

解决

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

问题5

nginx 启动后访问失败

原因:

缺少:

http.conf mime.types

解决

复制:

cp fastdfs/conf/http.conf /etc/fdfs/ cp fastdfs/conf/mime.types /etc/fdfs/

十一、最终目录结构

/usr/local/nginx /etc/fdfs /data/fastdfs

FastDFS 文件:

/data/fastdfs/storage/data/M00/00/00/xxx

访问地址:

http://服务器IP/group1/M00/00/00/xxx

十二、最终架构

浏览器 │ │ HTTP ▼ Nginx │ │ ngx_fastdfs_module ▼ FastDFS Storage │ ▼ 文件数据

http://www.jsqmd.com/news/536215/

相关文章:

  • QuickLink 图标启动器 v3.15.3 | 电脑桌面高效整理工具
  • 当课堂管理遇上YOLOv8:手把手教你做个“班主任之眼
  • 多商户商城源码如何选型更高效?避开5大坑,效率翻倍!
  • 从外包到阿里P8:我的“野路子”晋升攻略
  • 无网环境部署:OpenClaw+nanobot镜像的离线安装包制作方法
  • Kotlin杂学:让代码优雅的作用域函数
  • Day24:向量数据库 Chroma_FAISS 入门
  • OpenClaw+GLM-4.7-Flash:自动化内容创作全流程
  • 五肽-48——由精氨酸、谷氨酸、亮氨酸、丝氨酸和苏氨酸的抗衰肽
  • 半桥LLC谐振变换器:开环、闭环及闭环+软启动Simulink仿真设计与配套说明文档详解
  • 力扣链表高频题:两两交换节点 + K个一组翻转链表(保姆级思路+满分代码)
  • OpenClaw技能扩展实战:基于百川2-13B-4bits的Markdown周报自动生成
  • 关于Shader学习路上的心得
  • 如何在openKylin下将vsftpd配置成可以让匿名用户访问(v0.2.0)
  • IIC总线
  • 零基础玩转OpenClaw:Qwen3.5-4B-Claude镜像云端体验指南
  • 闲置空间变增收宝地!全自动泡面机免费投放 全国都可以测位置
  • 如何在开放麒麟(openKylin)下安装FTP服务器(v0.2.0)
  • 什么牌子的大路灯护眼好?公认口碑最好的大路灯推荐排行榜前十名
  • 【华为OD机试真题】战场索敌 · 区域统计问题 (Python /JS)
  • 量子赌场黑客:修改概率云薅走十亿
  • 安装 Redis 为系统服务
  • DeerFlow企业级AI研究框架:3种集成模式与扩展架构设计
  • 如何在5分钟内快速部署开源项目:Ultralytics YOLO零基础配置指南
  • PLECS 4.7:虚拟同步机控制三相逆变仿真及报告
  • 密封圈源头厂家提供O型圈定制及国产替代服务:导向带/工程机械密封圈/弹簧蓄能密封圈/旋转密封圈/橡胶密封圈/泛塞封/选择指南 - 优质品牌商家
  • 从0基础到高薪入职:2026大专财富管理专业“三步走”职业规划图
  • 5个开源教育革新角度:释放3D创作工具的教学价值
  • 协议不通?一“网”打尽!PROFINET转MODBUS TCP网关,赋能步科伺服精准协同
  • Conda环境下的WebRTC编译与部署:从源码下载到实战避坑指南