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

准确--FastDFS快速单节点部署

FastDFS单节点部署

1. 系统准备

# 查看操作系统信息(适用于麒麟V10)
cat /etc/os-release

# 安装必要的软件包
yum -y install gcc gcc-c++ perl zlib-devel unzip

2. 准备 FastDFS 环境

cd /usr/local/fastdfs

# 下载必要包(若有访问限制,需预先下载)
通过网盘分享的文件:FastDFS安装包.zip
链接: https://pan.baidu.com/s/1nxjmZEaT-wYNC2I07dXQHQ?pwd=1111 提取码: 1111 
image-20241111184642864

3. 安装 FastDFS 依赖

# 安装 libfastcommon
tar -zxvf libfastcommon-1.0.7.tar.gz
cd libfastcommon-1.0.7
./make.sh
sudo ./make.sh install

# libfastcommon.so 默认安装目录为 /usr/lib64/libfastcommon.so,由于后续FastDFS主程序设置的lib目录是/usr/local/lib,所以这里需要创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.sor

4. 安装 FastDFS

cd /usr/local/fastdfs
tar -zxvf fastdfs-5.05.tar.gz
cd fastdfs-5.05
./make.sh
sudo ./make.sh install

# FastDFS 服务脚本 bin 目录是cd /usr/local/bin, 但实际命令安装在cd /usr/bin/ 下。我们需要建立 /usr/bin 到 /usr/local/bin 的软链接
ln -s /usr/bin/fdfs_trackerd /usr/local/bin
ln -s /usr/bin/fdfs_storaged /usr/local/bin
ln -s /usr/bin/stop.sh /usr/local/bin
ln -s /usr/bin/restart.sh /usr/local/bin

5. 配置 FastDFS

  1. Tracker 配置

    cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
    vim /etc/fdfs/tracker.conf
    
    • 修改 base_path=/home/fastdfs/tracker
    • 修改 http.server_port=80
  2. Storage 配置

    cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
    vim /etc/fdfs/storage.conf
    
    • 修改 base_path=/home/fastdfs/storage
    • 修改 store_path0=/home/fastdfs/storage_data
    • 修改 tracker_server=10.20.0.80:22122(使用实际服务器 IP)
    • 修改 http.server_port=80

6. 启动 FastDFS 服务

# 启动 Tracker
sudo fdfs_trackerd /etc/fdfs/tracker.conf

# 启动 Storage
sudo fdfs_storaged /etc/fdfs/storage.conf

#重启
fdfs_trackerd /etc/fdfs/tracker.conf restart
fdfs_storaged /etc/fdfs/storage.conf restart

7. 测试通信

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

8. 测试文件上传

# 配置 client
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
  • 修改 base_path=/home/fastdfs/client
  • 修改 tracker_server=10.20.0.80:22122
# 测试上传
cd /root
fdfs_test /etc/fdfs/client.conf upload <文件名>

9. 安装 Nginx

# 安装依赖
sudo yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

# 安装 Nginx
cd /usr/local/fastdfs
tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_gzip_static_module
make && sudo make install

# 启动 Nginx
sudo /usr/local/nginx/sbin/nginx

10. 整合 FastDFS 和 Nginx

# 提取并配置 FastDFS Nginx 模块
tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /opt/
vim /opt/fastdfs-nginx-module/src/config
# 修改所有 `/usr/local/` 路径为 `/usr/`。

# 复制并配置 FastDFS Nginx 模块的配置文件
cp /opt/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/
vim /etc/fdfs/mod_fastdfs.conf
  • 修改 tracker_server=10.20.0.80:22122
  • 设置 url_have_group_name=true
  • 设置 store_path0=/home/fastdfs/storage_data
# 重新配置带有 FastDFS 模块的 Nginx
cd /usr/local/fastdfs/nginx-1.18.0/
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-stream --with-http_gzip_static_module --add-module=/opt/fastdfs-nginx-module/src
make && make install

11. 修改 Nginx 配置

编辑 /usr/local/nginx/conf/nginx.conf 并添加以下内容:

user root;

location ~/group([0-9])/M00 {
    root /home/fastdfs/storage_data;
    ngx_fastdfs_module;
}

12. 重启 Nginx

/usr/local/nginx/sbin/nginx -s reload

13. 验证配置

curl http://10.20.0.80/group1/M00/00/00/文件名

如果显示图片即配置成功。

常见问题排查

  1. 如果出现路径错误,检查 /usr/local/nginx/logs/error.log 日志。

    • 图片路径错误时的报错示例:
      • image-20241111175513196
  2. 如果出现权限错误,可能是 Nginx 权限问题,修改 nginx.conf 文件开头为 user root;

    • 权限错误示例:经过系统的排查,发现了能访问的原因是应为 Nginx 权限问题导致的,我们的访问请求被决绝了,解决办法很简单,只需修改Nginx配置文件,在配置文件的开头加入 “ user root; ” 即可
      • image-20241111183842424

最终配置完成后测试是否可以正常访问图片资源:

  • image-20241111183944184

http://www.kler.cn/a/390155.html

相关文章:

  • 华为机试HJ39 判断两个IP是否属于同一子网
  • gdb编译教程(支持linux下X86和ARM架构)
  • Debezium系列之:发件箱事件路由器
  • 43.第二阶段x86游戏实战2-提取游戏里面的lua
  • Python教程笔记(1)
  • 「IDE」集成开发环境专栏目录大纲
  • 【LeetCode】【算法】3. 无重复字符的最长子串
  • 单目视觉测量及双目视觉测量
  • AndroidStudio 加载grade失败问题解决
  • 企业级大数据安全架构
  • 二叉树搜索树(上)
  • 【lambda表达式】【DP】个人练习-Leetcode-1039. Minimum Score Triangulation of Polygon
  • QML —— 遮罩功能,模拟软件头像功能(附源码)
  • python printf中文乱码
  • JedisException:Could not get a resource from the pool
  • SpringCloud 微服务消息队列灰度方案 (RocketMQ 4.x)
  • SQL 窗口函数
  • 什么是C/C++,有什么特点
  • 物联网学习路线来啦!
  • 道可云人工智能元宇宙每日资讯|2024国际虚拟现实创新大会将在青岛举办
  • cache写策略 操作系统
  • nginx 部署2个相同的vue
  • 241111.学习日志——【CSDIY】Cpp零基础速成
  • 2024年11月10日系统架构设计师考试题目回顾
  • 【算法速刷(9/100)】LeetCode —— 42.接雨水
  • 2024年9月青少年软件编程(C语言/C++)等级考试试卷(四级)