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

搭建单机版FastDFS分布式文件存储系统

一、准备工作

1、下载FastDFS安装包和依赖包

https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43
https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06
https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22

注:可以使用window浏览器(下载后需要上传到服务器上),也可以使用linux的curl命令

curl -o libfastcommon-1.0.43.tar.gz https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43
curl -o fastdfs-6.06.tar.gz https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06
curl -o fastdfs-nginx-module-1.22.tar.gz https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22

2、下载nginx,可以结合fastdfs-nginx-module插件,在浏览器上访问文件

nginx: download页面

注:也可以使用curl命令直接下载到linux服务器上,这里使用的nginx版本是1.22

curl -O http://nginx.org/download/nginx-1.22.1.tar.gz 

3、在/usr/local目录下创建fastdfs文件夹,并将下载的文件解压到该目录下,删除压缩包(减少存储占用,推荐)。

mkdir /usr/local/fastdfstar -zxvf fastdfs-6.06.tar.gz -C /usr/local/fastdfs
tar -zxvf fastdfs-nginx-module-1.22.tar.gz -C /usr/local/fastdfs
tar -zxvf libfastcommon-1.0.43.tar.gz -C /usr/local/fastdfs
tar -zxvf nginx-1.22.1.tar.gz -C /usr/local/fastdfsrm -rf fastdfs-6.06.tar.gz fastdfs-nginx-module-1.22.tar.gz libfastcommon-1.0.43.tar.gz nginx-1.22.1.tar.gz

4、安装依赖,如果linux环境中有perl,则无需安装,否者需要安装

yum -y install gcc-c++ libevent pcre pcre-devel zlib zlib-devel openssl openssl-devel perl

 二、安装fastdfs的依赖包 libfastcommon

1、进入/usr/local/fastdfs/libfastcommon-1.0.43目录下,执行编译安装

./make.sh # 编译
./make.sh install # 安装

三、安装fastdfs包

1、进入到/usr/local/fastdfs/fastdfs-6.06目录下,执行编译安装

./make.sh # 编译
./make.sh install # 安装

2、执行编译安装命令之后,如果不报错的话,软件会被安装到/et/fdfs目录下,将/usr/local/fastdfs/fastdfs-6.06/conf目录下的所有文件复制到/et/fdfs目录下

cp /usr/local/fastdfs/fastdfs-6.06/conf/* /et/fdfs

3、创建tracker文件夹(存储路径使用)

mkdir -p /home/fastdfs/tracker

4、进入到/et/fdfs目录下修改tracker.conf文件

修改前:

22 # the base path to store data and log files

23 base_path = /home/yuqing/fastdfs
修改后:

22 # the base path to store data and log files

23 base_path = /home/fastdfs/tracker

5、启动tracker服务(跟踪器)

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

6、创建storage文件夹

mkdir -p /home/fastdfs/storage

7、进入到/et/fdfs目录下修改storage.conf文件

修改前:

48 #       eg. the disk free space should > 50GB

49 base_path =  /home/yuqing/fastdfs # 默认存储路径


127 #       the base_path should be independent (different) of the store paths
128 
129 store_path0 = /home/yuqing/fastdfs  # 默认存储路径


143 #   another eg.: 192.168.1.10,172.17.4.21:22122
144 
145 tracker_server = 192.168.209.121:22122
146 tracker_server = 192.168.209.122:22122

修改后:

48 #       eg. the disk free space should > 50GB

49 base_path =  /home/fastdfs/storage


127 #       the base_path should be independent (different) of the store paths
128 
129 store_path0 = /home/fastdfs/storage


143 #   another eg.: 192.168.1.10,172.17.4.21:22122
144 
145 tracker_server = 本地IP:22122
146 tracker_server = 本地IP:22122

8、启动storage服务(存储器)

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

9、创建client文件夹(客户端)

mkdir -p /home/fastdfs/client/

10、进入到/et/fdfs目录下修改client.conf文件

修改前:

10 # the base path to store log files
11 base_path = /home/yuqing/fastdfs


20 #   another eg.: 192.168.1.10,172.17.4.21:22122
21 
22 tracker_server = 192.168.0.196:22122
23 tracker_server = 192.168.0.197:22122
修改后:

# the base path to store log files
base_path = /home/fastdfs/client


#   another eg.: 192.168.1.10,172.17.4.21:22122

tracker_server = 本地IP:22122
#tracker_server = 192.168.0.197:22122

 11、测试系统是否可用

fdfs_test /etc/fdfs/client.conf upload storage.conf 

 四,安装并配置nginx,(可浏览器访问)

1、进入到 /usr/local/fastdfs/nginx-1.22.1文件下

#配置nginx --prefix 安装目录,--with-http_ssl_module 使用ssl模块,--add-module 使用nginx插件./configure --prefix=/usr/local/nginx --with-http_ssl_module --add-module=/usr/local/fastdfs/fastdfs-nginx-module-1.22/src

2、编译并安装nginx 

make && make install

 3、nginx安装目录/usr/local/nginx

4、配置nginx.conf文件

 

5、启动nginx,并访问浏览器,当我们访问文件地址的时候,会直接下载

相关文章:

搭建单机版FastDFS分布式文件存储系统

一、准备工作 1、下载FastDFS安装包和依赖包 https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.43 https://codeload.github.com/happyfish100/fastdfs/tar.gz/V6.06 https://codeload.github.com/happyfish100/fastdfs-nginx-module/tar.gz/V1.22 注&…...

【验证码逆向专栏】房某下登录滑块逆向分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未…...

Python 3.11 版本是对线程安全做了什么更改吗

问题:这份代码在 3.11.3 中它居然输出 0 ,一度以为自己写错了,抱着不信邪的态度,又搞了个 Python 3.9.7 的环境试了下,果然还是符合自己预期,输出不为 0,想问下 3.11 版本中是做了什么修改吗&am…...

【Docker】镜像的创建、管理与发布

镜像的获取 镜像可以从以下方式获得: 从远程镜像仓库拉取,可以是公有仓库,也可以是私有仓库从Dockerfile构建从文件导入(离线)从容器提交 镜像的基本操作 跟镜像相关的命令如下: $ docker image --help…...

移动硬盘或U盘无法弹出的解决方法

以下内容源于网络资源的学习与整理,如有侵权请告知删除。 最近在红米本win11中总遇到“该设备正在使用中”而无法弹出硬盘的问题。 解法该问题的思路:先定位占用该设备的进程,然后结束该进程。 定位进程 既然设备被占用,那肯定…...

(leetcode1761一个图中连通三元组的最小度数,暴力+剪枝)-------------------Java实现

(leetcode1761一个图中连通三元组的最小度数,暴力剪枝)-------------------Java实现 题目表述 给你一个无向图,整数 n 表示图中节点的数目,edges 数组表示图中的边,其中 edges[i] [ui, vi] ,…...

【漏洞复现】金和OA C6任意文件读取漏洞

漏洞描述 金和OA协同办公管理系统C6软件共有20多个应用模块,160多个应用子模块,涉及的企业管理业务包括协同办公管理、人力资源管理、项目管理、客户关系管理、企业目标管理、费用管理等多个业务范围,从功能型的协同办公平台上升到管理型协同…...

2023年全国大学生数学建模B题

多波束测线问题 1.问题提出 单波束测深是利用声波在水中的传播特性来测量水体深度的技术。声波在均匀介质中作匀 速直线传播,在不同界面上产生反射,利用这一原理,从测量船换能器垂直向海底发射声波信号,并记录从声波发射到信号接…...

【LeetCode】2651.计算列车到站时间

题目 给你一个正整数 arrivalTime 表示列车正点到站的时间(单位:小时),另给你一个正整数 delayedTime 表示列车延误的小时数。 返回列车实际到站的时间。 注意,该问题中的时间采用 24 小时制。 示例 1:…...

Redis——认识Redis

简单介绍 Redis诞生于2009年,全称是Remote Dictionary Server,远程词典服务器,是一个基于内存的键值型NoSQL数据库。 特征 键值(Key-value)型,value支持多种不同数据结构,功能丰富单线程&…...

通讯录怎么导入新手机?3个推荐小妙招

最近刚换了新手机,旧手机里的联系人太多了,不想在新手机上一个个重新添加。有没有什么快速简单的方法能够将通讯录导入新手机? 大家在更换新手机之后都是怎么导入通讯录的呢?换手机最重要的就是把数据进行完整转移,那么…...

Geoserver发布shp、tiff、瓦片等格式的GIS数据

这里写目录标题 1 发布shp矢量数据1.1 添加shp作为数据源1.2 发布shp图层1.3 预览服务1.4 配置样式 2 发布Postgres数据库2.2 发布数据 3 发布 tif 栅格数据3.1 添加 tif 数据源3.2 发布tif数据3.3 预览服务3.4 配置地图样式 关于中文标注乱码的问题 1 发布shp矢量数据 发布sh…...

读书笔记-《ON JAVA 中文版》-摘要24[第二十一章 数组]

文章目录 第二十一章 数组1. 数组特性2. 一等对象3. 返回数组4. 多维数组5. 泛型数组6. Arrays的fill方法7. Arrays的setAll方法8. 数组并行9. Arrays工具类10. 数组拷贝11. 数组比较12. 流和数组13. 数组排序14. binarySearch二分查找15. 本章小结 第二十一章 数组 1. 数组特…...

go语言基本操作---五

error接口的使用 Go语言引入了一个关于错误处理的标准模式,即error接口,它是Go语言内建的接口类型 type error interface {Error() string }package mainimport ("errors""fmt" )type Student struct {name stringid int }func …...

【sgLazyTree】自定义组件:动态懒加载el-tree树节点数据,实现增删改、懒加载及局部数据刷新。

特性 可以自定义主键、配置选项支持预定义节点图标&#xff1a;folder文件夹|normal普通样式多个提示文本可以自定义支持动态接口增删改节点可以自定义根节点Id可以设置最多允许添加的层级深度 sgLazyTree源码 <template><div :class"$options.name" v-lo…...

Rust个人学习笔记

感悟&#xff1a;感觉rust好像缝合怪&#xff0c;既有python的影子&#xff0c;又有java和cpp的影子&#xff0c;可能这就是新型编程语言趋势吧。而且他的各种规范很严格很规范&#xff0c;比java还更工程&#xff0c;各种规范不对都有warning。 命名规范&#xff1a;蛇形命名…...

Java根据身份证号码提取出省市区,JSON数据格式

package com.rdes.talents.utils;import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** Author: 更多实用源码 www.cx1314.cn* Date: 2023/9/7 …...

MySQL知识笔记——初级基础(实施工程师和DBA工作笔记)

老生长谈&#xff0c;MySQL具有开源、支持多语言、性能好、安全性高的特点&#xff0c;广受业界欢迎。 在数据爆炸式增长的年代&#xff0c;掌握一种数据库能够更好的提升自己的业务能力&#xff08;实施工程师&#xff09;。 此系列将会记录我学习和进阶SQL路上的知识&#xf…...

javaee 事务的传播行为

事务的传播行为 事务的第一个方面是传播行为&#xff08;propagation behavior&#xff09;。当事务方法被另一个事务方法调用时&#xff0c;必须指定事务应该如何传播。例如&#xff1a;方法可能继续在现有事务中运行&#xff0c;也可能开启一个新事务&#xff0c;并在自己的…...

C#-SQLite-使用教程笔记

微软官网资料链接&#xff08;可下载文档&#xff09; 教程参考链接&#xff1a;SQLite 教程 - SQLite中文手册 项目中对应的system.dat文件可以用SQLiteStudio打开查看 参考文档&#xff1a;https://d7ehk.jb51.net/202008/books/SQLite_jb51.rar 总结介绍 1、下载SQLiteS…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Android Wi-Fi 连接失败日志分析

1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分&#xff1a; 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析&#xff1a; CTR…...

在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能

下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能&#xff0c;包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...

Docker 运行 Kafka 带 SASL 认证教程

Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明&#xff1a;server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...