FastDFS部署

2023-10-29

概述

FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。

系统版本

在这里插入图片描述

基础环境

yum install -y gcc gcc-c++
yum -y install libevent

部署所需资源包

libfatscommon:FastDFS分离出的一些公用函数包
FastDFS:FastDFS本体
Nginx:Nginx
fastdfs-nginx-module:FastDFS和nginx的关联模块

在这里插入图片描述

解压libfastcommon函数库

这里用的函数库是zip包

unzip libfastcommon-master.zip

tar包解压命令

tar -zxvf libfastcommon-xxx.tar.gz

解压后进入libfastcommon-master文件夹,然后变异和安装

./make.sh
./make.sh install

解压FastDFS包

tar -zxvf fastdfs-5.11.tar.gz

进入fastdfs-5.11目录,安装fastdfs

./make.sh
./make.sh install
# `/usr/bin`中包含了可执行文件`,/etc/fdfs`包含了配置文件

将fastdfs的配置文件复制一份到/etc/fdfs下面

cp /home/fastdfs-5.11/conf/* /etc/fdfs/

配置Tracker服务

进入到/etc/fdfs目录下面,修改tracker配置文件中的tracker工作目录,保存数据以及日志

vim tracker.conf
#/base_path 快速查找
#找到base_path修改成如下
base_path=/usr/local/fastdfs/tracker # 根据自己喜好自定义路径

创建tracker目录,需要和上面修改的路径一致

mkdir /usr/local/fastdfs/tracker -p

启动tracker服务

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

停止tracker服务

/usr/bin/stop.sh /etc/fdfs/tracker.conf

不过安装过程中,fdfs已经被设置为系统服务,我们可以采用熟悉的服务启动方式:

service fdfs_trackerd start # 启动fdfs_trackerd服务,停止用stop

查看tracker服务是否启动

ps -ef | grep fdfs_trackerd

在这里插入图片描述
设置tracker服务开机自启动

chkconfig fdfs_trackerd on

配置storage服务

vim storage.conf

# 修改storage的工作空间
base_path=/usr/local/fastdfs/storage
# 修改storage的存储空间
store_path0=/usr/local/fastdfs/storage
# 修改tracker的地址和端口号,用于心跳
tracker_server=服务器IP:22122

创建目录

mkdir /usr/local/fastdfs/storage -p

启动storage服务

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

关闭storage服务

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

推荐使用:

service fdfs_storaged start  # 启动fdfs_storaged服务,停止用stop

查看storage服务是否启动

ps -ef | grep fdfs_storaged

设置storage服务开机自启动

chkconfig fdfs_storaged on

测试文件上传

编辑client配置文件

vim client.conf

# 修改日志基本路径
base_path=/usr/local/fastdfs/client
#tracker的ip根据实际tracker的ip地址配置 不一致会导致文件浏览失败的问题
tracker_server=服务器IP:22122

创建目录

mkdir /usr/local/fastdfs/client

编辑测试文件

echo "Hello World!" > index.html

上传文件

#上传/etc/fdfs目录下的anti-steal.jpg文件进行测试
/usr/bin/fdfs_test /etc/fdfs/client.conf upload /etc/fdfs/index.html

出现以下内容证明已经上传成功了
!](https://img-blog.csdnimg.cn/19f0f8f3ea874f50be2ddd315a46804a.png#pic_center)

存储目录(在前面配置的storage的store_path0=/usr/local/fastdfs/storage下),url为远程访问地址,这里还不能远程访问,配置了nginx模块后才能访问

解压fastdfs-nginx-master包

在这里插入图片描述

 unzip fastdfs-nginx-module-master.zip

进入 unzip fastdfs-nginx-module-master中的src目录下,赋值配置文件

# 进入解压包下的src目录
cd fastdfs-nginx-module-master/src/
# 复制配置文件
cp mod_fastdfs.conf /etc/fdfs

清空文件内容

> filename # 或者cat /dev/null > filename

修改src目录下的config内容

ngx_addon_name=ngx_http_fastdfs_module
 
if test -n "${ngx_module_link}"; then
    ngx_module_type=HTTP
    ngx_module_name=$ngx_addon_name
    ngx_module_incs="/usr/local/include/fastdfs /usr/include/fastcommon/"
    ngx_module_libs="-lfastcommon -lfdfsclient"
    ngx_module_srcs="$ngx_addon_dir/ngx_http_fastdfs_module.c"
    ngx_module_deps=
    CFLAGS="$CFLAGS -D_FILE_OFFSET_BITS=64 -DFDFS_OUTPUT_CHUNK_SIZE='256*1024' -DFDFS_MOD_CONF_FILENAME='\"/etc/fdfs/mod_fastdfs.conf\"'"
    . auto/module
else
    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/fastdfs /usr/include/fastcommon/"
    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\"'"
fi

ngx_module_incs="/usr/local/include/fastdfs /usr/include/fastcommon/
CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/include/fastcommon/

修改/etc/fdfs/目录下的mod_fastdfs配置文件

vim mod_fastdfs.conf

base_path=/usr/local/fastdfs/tmp
#tracker地址
tracker_server=trackerIP地址:22122
url_have_group_name = true
store_path0=/usr/local/fastdfs/storage

创建目录

mkdir /usr/local/fastdfs/tmp

安装Nginx

nginx安装教程

注意在nginx解压完进行./configure需改为如下命令,需要增加一个fastdfs-nginx-module模块,即下面的最后一行,以实际路径为准

./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.35 --add-module=/home/fastdfs-nginx-module-master/src

然后修改在nginx的配置文件中添加代理

server {
    listen       8888;
    server_name  localhost;
 
    location /group1/M00 {
            ngx_fastdfs_module;
    }
 
}

最后重启nginx,浏览输入返回的链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FastDFS部署 的相关文章

随机推荐

  • 关于cstdio和iostream,以及有关namespaces的问题

    1 cstdio是面向 文件 的 或者不强调文件和非文件流的区别 默认流就是可以关联外部文件 至于文件的外延是啥就不管 扔给宿主环境了 从std FILE这个名字以及printf scanf接口描述基于fprintf fscanf上就可以看
  • 100天精通Python(可视化篇)——第84天:matplotlib绘制不同种类炫酷直方图参数说明+代码实战(普通、多变量、堆叠、分组、多个子图、折线、曲线直方图)

    文章目录 专栏导读 1 直方图介绍 1 介绍 2 直方图的五种形态 1 标准型 2 孤岛型 3 双峰型 4 折齿型
  • 是jenkinsfile中可以用java_Jenkins基础:Jenkinsfile使用实例:7:使用集成的工具进行操作...

    文章目录 隐藏 tools 示例 环境准备 全局工具设定 获取Jenkins Crumb 创建Job Jenkinsfile说明 事前准备 执行Job 确认执行结果 总结 参考内容 Jenkins可以与其他工具进行集成 并通过在Global
  • 史上最全面的DateUtils工具类

    此工具类包含了基本上常用的工具类 包含对于各种类型的日期的转换 以及转成我们所需要的各种类型日期格式 public class DateUtils 仅显示年月日 例如 2015 08 11 public static final Strin
  • 广西高等教育学会高校教育技术委员会莅临瑞云科技考察交流

    2023年3月18日上午11点整 广西高等教育学会高校教育技术专业委员会组织了一批来自广西各院校的专家老师 来到深圳市瑞云科技股份有限公司 以下简称瑞云科技 参观考察 瑞云科技是一家专注为视觉行业提供垂直云计算服务的公司 用户超20万 遍及
  • 掌握Python文件操作的绝招:打造数据之径,揭开文件操作的神秘面纱

    文章目录 前言 文件的基本操作 打开文件操作 关闭文件操作 对文件进行操作 1 只读文件操作 read readlines readline seek 2 只写文件操作 3 文件追加操作 读写 追加读写操作 1 r 模式打开文件 2 w 模
  • 代码评审(Code Review)规范

    一 目的 Code Review是一种用来确认方案设计和代码实现的质量保证机制 通过这个机制我们 可以对代码 测试过程和注释进行检查 Code Review主要用来在软件工程过程中改进代码质量 通过Code Review可以达到 如下目的
  • Pycharm以及cmd调用Anaconda已配置环境的方法

    1 Anaconda配置环境 打开Anaconda软件 点击Anvironment Create 编辑环境Name 选择Python版本 一台计算机可以安装多个版本的Python Pycharm可以直接使用Anaconda创建的环境 依次点
  • idea技巧

    Ctrl P 查看方法参数 Ctrl Q 查看类 方法 属性注释 Alt Enter 提示 ctrol shift 上下键 将本行文字上下移动 ctrl o 重写方法 ctrl i implement 方法实现 Ctrl u 或者b 方法详
  • 最受推荐的10本Python书籍

    Python是一种通用的解释型编程 主要用于Web开发 机器学习和复杂数据分析 Python对初学者来说是一种完美的语言 因为它易于学习和理解 随着这种语言的普及 Python程序员的机会也越来越大 如果你想学习Python编程 市场上就有
  • C++ 单例模式

    原创文章 转载请注明出处 目录 C 单例模式介绍 一 单例是什么 二 C 实现单例 2 1 基础要点 2 2 C 实现单例的几种方式 C 单例模式介绍 单例可能是最简单的一种设计模式 实现方法很多种 同时单例也有其局限性 本文对C 单例的常
  • 项目开发过程文档

    1 项目开发计划 项目开发计划内容覆盖项目整个开发周期内的人员调度 所属阶段 需求 设计 编码 测试 实施 模块划分 开始和结束时间 计划 实际 2 需求规格说明书 需求规格说明书是对客户需求的理解形成的文档 为了确定与客户需求一致 在此基
  • 人物专访

    撰写 亿欧网 木木 大模型的出现 正在开启着国内新一轮AI热潮 某种程度上 当下真正决定AI企业成败的 是能否尽早实现 技术 场景 的双轮驱动 以最近大火的大模型为例 在很多人看来 OpenAI成功的关键因素之一 正是他们在GPT 3 5模
  • java 自定义比较器用法

    什么是比较器 比较器实质就是重载比较运算符 比较器可以很好的应用在特殊标准的排序上 比较器可以很好的应对在根据特殊标准排序的结构上 代码变得异常容易 还用于范型编程 自己定义比较器是自己设置的比较类实现了 Comparator 接口 代码如
  • devc运行窗口不显示_任务栏不显示打开的窗口怎么解决

    任务栏就是指位于桌面最下方的小长条 并且可以按照个人喜好拖动并更改 可以存放大部分正在运行的程序窗口 可是近来却有朋友遇到任务栏不显示打开的窗口了 这是怎么回事呢 有没有解决办法呢 下面小编就介绍一下任务栏不显示窗口的解决方法 大家有没有遇
  • chatgpt赋能python:Python高精度计算:介绍

    Python 高精度计算 介绍 在计算机科学中 高精度计算是指可以处理更高位数的数字和更精确的计算结果 这在很多领域中都是必需的 比如金融 科学计算 密码学等等 Python 是一个支持高精度计算的语言 它的高精度计算库可以轻松地进行各种高
  • idea中@Test不能在控制台输入

    Test不能控制台输入 使用Junit的 Test测试时无法使用控制台输入 解决办法 在idea的Help gt Edit Custom VM Options 中添加如下代码 添加以下内容 不要忘了 重启idea 使用Junit的 Test
  • 11.函数

    函数 接下来开始学习函数 函数这个知识点很重要 需要认真学习 先来了解下什么是函数 函数是组织好的 可重复使用的 用来实现单一或相关功能的代码块 如何使用函数 函数是组织好的 可重复使用的 用来实现单一 或相关联功能的代码段 函数能提高应用
  • 堆与栈的区别详细总结

    1 堆与栈的区别详细总结 Fighting 的博客 CSDN博客 堆和栈的区别 2 堆和栈的区别 江雨牧 博客园 3 堆和栈的区别 内外皆秀的博客 CSDN博客 堆和栈的区别 4 一文读懂堆与栈的区别 恋喵大鲤鱼的博客 CSDN博客 堆和栈
  • FastDFS部署

    概述 FastDFS是一个开源的轻量级分布式文件系统 它对文件进行管理 功能包括 文件存储 文件同步 文件访问 文件上传 文件下载 等 解决了大容量存储和负载均衡的问题 特别适合以文件为载体的在线服务 如相册网站 视频网站等等 FastDF