准确--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.rhkb.cn/news/469776.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

国标GB28181视频平台EasyCVR私有化部署视频平台对接监控录像机NVR时,录像机“资源不足”是什么原因?

EasyCVR视频融合云平台&#xff0c;是TSINGSEE青犀视频“云边端”架构体系中的“云平台”系列之一&#xff0c;是一款针对大中型项目设计的跨区域、网络化、视频监控综合管理系统平台&#xff0c;通过接入视频监控设备及视频平台&#xff0c;实现视频数据的集中汇聚、融合管理、…

【智谱开放平台-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

计算机新手练级攻略——如何搜索问题

目录 计算机学生新手练级攻略——如何搜索问题1.明确搜索意图2.使用精确关键词3.使用专业引擎搜索4.利用好技术社区1. Stack Overflow2. GitHub3. IEEE Xplore4. DBLP 5.使用代码搜索工具1. GitHub 代码搜索2. Stack Overflow 代码搜索3. Papers with Code4. IEEE Xplore 6.查阅…

【C++】详细介绍模版进阶,细节满满

目录 一、非类型模版参数&#xff1a; 1、介绍&#xff1a; 2、使用&#xff1a; 3、注意&#xff1a; 4、应用 二、模版特化 &#xff08;一&#xff09;、概念 &#xff08;二&#xff09;、函数模版特化 1、步骤&#xff1a; 2、举例&#xff1a; 3、不建议使用函…

动态规划---解决多段图问题

ok 小伙伴们&#xff0c;我现在有点小小的红温&#xff0c;有点毛躁。 怎么解决多段图问题呢&#xff1f;求取最短路径有多种方法可取。 家人们&#xff0c;毫无思绪可言……………………………… 要实现动态规划&#xff0c;条件&#xff1a;子问题重叠度较高&#xff0c;并…

JMeter基础篇

目录 总目录&#xff1a; 一、JMeter简介&#xff1a; -用途&#xff1a; -优缺点&#xff1a; 二、JMeter安装&#xff1a; 三、项目简介&#xff1a; -学生管理系统&#xff1a; -API接口清单&#xff1a; 查询&#xff1a; 新增&#xff1a; 更新&#xff1a; 删…

Elasticsearch中什么是倒排索引?

倒排索引&#xff08;Inverted Index&#xff09;是一种索引数据结构&#xff0c;它在信息检索系统中被广泛使用&#xff0c;特别是在全文搜索引擎中。倒排索引允许系统快速检索包含给定单词的文档列表。它是文档内容&#xff08;如文本&#xff09;与其存储位置之间的映射&…

【Python特征工程系列】利用SHAP进行特征重要性分析-XGB模型为例(案例+源码)

这是我的第374篇原创文章。 一、引言 SHAP有多种实现方式&#xff0c;每种方式都适用于特定的模型类型&#xff0c;可以实现更快的逼近。 TreeExplainer :TreeExplainer专为树集合方法开发&#xff0c;如XGBoost&#xff0c;LightGBM或CatBoost。 DeepExplainer :DeepExplain…

C++数据结构算法学习

C ,orient(面向) object , object entity(实体) Visible(可见的) or invisible(不可见) 变量用来保存数据 objects attribute(属性) services(服务) C STL 容器 vector, list&#xff08;&#xff09; vector底层是数组&#xff0c;类似双向链表和list底层 map/s…

ELK-Logstash配置

文章目录 一、什么是Logstash、有什么用&#xff1f;什么是 Logstash&#xff1f;Logstash 的主要特点&#xff1a;Logstash 的用途&#xff1a; 二、Logstash的安装与基本配置事先要安装Java的环境&#xff1f;Logstash 安装Debian/UbuntuRed Hat/CentOSmacOS&#xff08;使用…

R语言机器学习与临床预测模型69--机器学习模型解释利器:SHAP

R小盐准备介绍R语言机器学习与预测模型的学习笔记&#xff0c; 快来收藏关注【科研私家菜】 01 机器学习的可解释性 对于集成学习方法&#xff0c;效果虽好&#xff0c;但一直无法解决可解释性的问题。我们知道一个xgboost或lightgbm模型&#xff0c;是由N棵树组成&#xff0c;…

Vue自定义指令详解——以若依框架中封装指令为例分析

自定义指令 在Vue.js中&#xff0c;自定义指令提供了一种非常灵活的方式来扩展Vue的功能。以下是对Vue中自定义指令的详细解释&#xff1a; 一、自定义指令的基本概念 自定义指令允许开发者直接对DOM元素进行低层次操作&#xff0c;而无需编写大量的模板或者JavaScript代码。…

sql server启用远程连接与修改默认端口

一&#xff0c;数据库右键属性 二&#xff0c;sa账号状态属性启用 三&#xff0c;SQL Server配置管理器, 点击SQL Server 服务选项&#xff0c;确定SQL Server是正在运行的。 四&#xff0c;手动修改数据库的连接端口 1&#xff09;确保启用 2)修改默认端口 3)客户端IP改为一…

吴恩达机器学习笔记(3)

吴恩达机器学习&#xff08;3&#xff09; tensorflow实现 用 TensorFlow 实现神经网络 以下是一个完整的代码示例&#xff0c;展示如何使用 TensorFlow 和 Keras 构建和训练一个简单的神经网络来处理 MNIST 数据集&#xff1a; import tensorflow as tf from tensorflow.k…

【入门篇】A+B Problem——多语言版

AB Problem 跳转 题目分析&#xff1a; 这个题目要求输入两个整数 a 和 b&#xff0c;然后输出它们的和。需要注意的是 a 和 b 的绝对值都不超过 10^9。此外&#xff0c;题目中提到了 Pascal 使用 integer 类型可能会爆掉&#xff0c;说明需要使用更大范围的数据类型来处理这…

Matlab实现鹈鹕优化算法(POA)求解路径规划问题

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 鹈鹕优化算法&#xff08;POA&#xff09;是一种受自然界鹈鹕捕食行为启发的优化算法。该算法通过模拟鹈鹕群体在寻找食物时的协作行为&#xff0c;如群飞、潜水和捕鱼等&#xff0c;来探索问题的最优解。POA因其…

LED和QLED的区别

文章目录 1. 基础背光技术2. 量子点技术的引入3. 色彩表现4. 亮度和对比度5. 能效6. 寿命7. 价格总结 LED和 QLED都是基于液晶显示&#xff08;LCD&#xff09;技术的电视类型&#xff0c;但它们在显示技术、色彩表现和亮度方面有一些关键区别。以下是两者的详细区别&#xff…

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS&#xff1a;关于接口定义 接口定义&#xff0c;通常由服务器提供方来定义。 1.路径&#xff1a;自己定义 2.参数&#xff1a;根据需求考虑&#xff0c;我们这个接口功能完成需要哪些信息。 3.返回结果&#xff1a;考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

OpenEuler 下 Docker 安装、配置与测试实例

文章目录 前言1. 环境准备2. 下载 Docker3.配置服务文件4.配置加速器加速下载docker镜像5. 验证 Docker 安装 前言 Docker 安装大致分为包管理器安装、脚本安装、离线手动安装、容器编排工具安装、桌面版安装等&#xff0c;每种安装各有特点&#xff0c;但涉及知识面不少&…

如何线程安全的使用HashMap

前言 Map一直是面试中经常被问到的问题。博主在找工作的过程中&#xff0c;就被问到了这样一个问题&#xff1a; Map是线程安全的吗&#xff1f;我不考虑使用线程安全的Map(eg&#xff1a;ConcurrentHashMap) 。如何在多线程/高并发下安全使用 HashMap&#xff1f; 当时博主…