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

fastdfs环境搭建

安装包下载路径

  1. libfastcommon下载地址:https://github.com/happyfish100/libfastcommon/releases
  2. FastDFS下载地址:https://github.com/happyfish100/fastdfs/releases
  3. fastdfs-nginx-module下载地址:https://github.com/happyfish100/fastdfs-nginx-module/releases
  4. nginx下载地址:https://nginx.org/en/download.html
  5. fastdfs官网:https://github.com/happyfish100/fastdfs

fastdfs安装

  1. sudo yum -y update
  2. sudo yum install -y gcc gcc-c++
  3. sudo yum install -y libevent
  4. tar -zxvf libfastcommon-1.0.48.tar.gz
  5. sudo ./make.sh, sudo ./make.sh install
  6. tar -zxvf fastdfs-6.07.tar.gz
  7. sudo ./make.sh, sudo ./make.sh install
  8. 将conf目录中的文件复制到/etc/fdfs目录中 sudo cp ./conf/* /etc/fdfs/

配置tracker (192.168.99.101做tracker)

  1. 创建目录/home/Admin/fastdfs/tracker
  2. sudo vi /etc/fdfs/tracker.conf
  3. 修改base_path的值:base_path = /home/Admin/fastdfs/tracker
  4. 启动tracker: sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
  5. 查看进程状态:ps -ef |grep tracker

配置storage(192.168.99.102做storage)

  1. 创建目录/home/Admin/fastdfs/storage
  2. sudo vi /etc/fdfs/storage.conf
  3. 修改参数
    base_path = /home/Admin/fastdfs/storage
    store_path0 = /usr/local/fastdfs/storage
    tracker_server = 192.168.99.101:22122
    
  4. 启动storage服务:sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf

测试上传

  1. 修改storage服务器上的/etc/fdfs/client.conf文件
    base_path = /home/Admin/fastdfs/client
    tracker_server = 192.168.99.101:22122
    
  2. 将test.png文件上传到/home/Admin/test.png
  3. 进入/usr/bin/目录执行./fdfs_test /etc/fdfs/client.conf upload /home/Admin/test.png

安装fastdfs-nginx-module

  1. tar -zxvf fastdfs-nginx-module-1.22.tar.gz
  2. 进入src目录中,复制文件到fsds中: sudo cp mod_fastdfs.conf /etc/fdfs/
  3. 修改mod_fastdfs.conf文件:sudo vi /etc/fdfs/mod_fastdfs.conf
    # 修改 base_path 目录
    base_path=/home/Admin/fastdfs/tmp
    # 修改 store_path0 的路径和 storage.conf 配置文件中的 store_path0 路径一致
    store_path0= /home/Admin/fastdfs/storage
    # 修改 tracker_server 地址为 tracker 服务器地址
    tracker_server=192.168.99.101:22122
    # 修改一下 group_name
    group_name = group1
    # url_have_group_name,生成的访问url是否要包含group name,可以改成true
    url_have_group_name = true
    

修改fastdfs-nginx-module-1.22/src目录中的config文件

  1. sodu vi config
    ngx_module_incs="/usr/local/include" 修改为 ngx_module_incs="/usr/include"
    CORE_INCS="$CORE_INCS /usr/local/include" 修改为 CORE_INCS="$CORE_INCS /usr/include"
    

nginx安装

  1. sudo yum install -y pcre‐devel
  2. sudo yum install -y zlib-devel
  3. 创建目录:sudo mkdir -p /var/temp/nginx
  4. 进入nginx解压目录执行:sudo ./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module --http-client-body-temp-path=/var/temp/nginx/client --http-proxy-temp-path=/var/temp/nginx/proxy --http-fastcgi-temp-path=/var/temp/nginx/fastcgi --http-uwsgi-temp-path=/var/temp/nginx/uwsgi --http-scgi-temp-path=/var/temp/nginx/scgi --add-module=/home/Admin/fastdfs-nginx-module-1.22/src
  5. 安装nginx:sudo make & sudo make install

nginx 配置

  1. sudo vi /usr/local/nginx/conf/nginx.conf
    user root; # 这一行需要打开,否则启动会报权限错误
    error_log  logs/error.log;  # 打开日志,以及http节点下的log_format和access_log配置
    server {## 该端口为storage.conf中的http.server_port相同listen    8888;    server_name  localhost;location ~/group[0-9]/ {ngx_fastdfs_module;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}
    }
    
  2. 访问服务:http://192.168.99.102:8888/group1/M00/00/00/CmCyVGRI0X-ASpl8AAS1hl-FwsM154_big.png

防火墙开通

  1. 需要开通storage访问tracker服务22122端口策略
  2. 需要开通应用机器(测试环境)到tracker服务22122端口策略
  3. 需要开通应用机器(测试环境)到storage服务23000端口策略
  4. 历史文件迁移scp 需要开通旧storage到新storage的22端口策略

数据迁移

  1. tar -cvf data20230428.tar data
  2. 复制文件:scp data20230428.tar Admin@192.168.99.102:/home/Admin
  3. tar -xf data20230428.tar
  4. 删除解压目录中非数据文件的部分比如说进程id
  5. sudo cp -r * ~/fastdfs/storage/data/

配置fastdfs服务器开机自启动

  1. tracker开机启动:sudo vi /etc/rc.d/rc.local
    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    
  2. storage开机启动: sudo vi /etc/rc.d/rc.local
    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    
  3. nginx开机启动: sudo vi /etc/rc.d/rc.local
    /usr/local/nginx/sbin/nginx
    

其他

  1. 查看进程id:ps -aux|grep nginx
  2. 查看nginx的安装路径:ls -l /proc/进程号/exe
  3. 查看tracker服务:netstat -antp|grep fdfs

nginx 启停

  1. 启动:sudo /usr/local/nginx/sbin/nginx
  2. 停止:sudo /usr/local/nginx/sbin/nginx -s stop
  3. 重启:sudo /usr/local/nginx/sbin/nginx -s reload
  4. 日志所在目录: /usr/local/nginx/logs

相关文章:

fastdfs环境搭建

安装包下载路径 libfastcommon下载地址:https://github.com/happyfish100/libfastcommon/releasesFastDFS下载地址:https://github.com/happyfish100/fastdfs/releasesfastdfs-nginx-module下载地址:https://github.com/happyfish100/fastdf…...

有什么牌子台灯性价比高?性价比最高的护眼台灯

由心感叹现在的孩子真不容易,学习压力比我们小时候大太多,特别是数学,不再是简单的计算,而更多的是培养学生其他思维方式,有时候我都觉得一年级数学题是不是超纲了。我女儿现在基本上都是晚上9点30左右上床睡觉&#x…...

信息系统项目管理师 第9章 项目范围管理

1.管理基础 1.产品范围和项目范围 产品范围:某项产品、服务或成果所具有的特征和功能。根据产品需求来衡量。 项目范围:包括产品范围,是为交付具有规定特性与功能的产品、服务或成果而必须完成的工作。项目管理计划来衡量 2.管理新实践 更加注重与商业分析师一起…...

【Android入门到项目实战-- 8.2】—— 使用HTTP协议访问网络

目录 一、使用HttpURLConnection 1、使用Android的HttpURLConnection步骤 1)获取HttpURLConnection实例 2)设置HTTP请求使用的方法 3)定制HTTP请求,如连接超时、读取超时的毫秒数 4)调用getInputStream()方法获取返回的输入流 5)关闭HTTP连接 2、…...

Go官方指南(五)并发

Go 程 Go 程(goroutine)是由 Go 运行时管理的轻量级线程。 go f(x, y, z) 会启动一个新的 Go 程并执行 f(x, y, z) f, x, y 和 z 的求值发生在当前的 Go 程中,而 f 的执行发生在新的 Go 程中。 Go 程在相同的地址空间中运行&#xff0c…...

VS快捷键大全 | 掌握这些快捷键,助你调试快人一步

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…...

【刷题】203. 移除链表元素

203. 移除链表元素 一、题目描述二、示例三、实现方法1-找到前一个节点修改next指向方法2-不是val的尾插重构 总结 203. 移除链表元素 一、题目描述 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新…...

C++11学习- CPU多核与多线程、并行与并发

随着计算机编程频繁使用,关于CPU的处理性能的讨论从未停止过,由于我最近在学习多线程相关的知识,那么就来理一理CPU的核心问题。 一、线程与进程 业解释 线程是CPU调度和分配的基本单位,可以理解为CPU只看得到线程; …...

docker登录harbor、K8s拉取镜像报http: server gave HTTP response to HTTPS client

docker登录harbor、K8s拉取镜像报http: server gave HTTP response to HTTPS client 当搭建完docker私有仓库后,准备docker login http://ip:端口 登录时会包如下错误 当我们使用docker私有仓库中的镜像在K8s集群中部署应用时会包如下错误 以上错误根据报错信息可…...

Redis在linux下安装

1.下载安装包 redis官网: Download | Redis 2.解压 2.1在目录下解压压缩包 tar -zxvf redis-7.0.11.tar.gz 2.2将redis移至另一目录下并改名为redis mv redis-7.0.11 /usr/local/redis 3.编译 进入到redis目录下,make命令编译 [rootVM-24-15-centos local]# cd…...

这里有你想知道的那些卖家友好型跨境电商平台!

目前市面上的跨境电商平台千千万,想要找到那个最合适的平台其实不容易,而且合适这个定义也有很多不同标准。龙哥今天打算从其中一个标准展开,那就是对卖家的友好程度。我们要做的话可以优先选择一些对卖家友好的平台,无论是方便我…...

架构中如何建设共识

在互联网时代,我们面临着三个与沟通交流相关的重要挑战: 分布式研发:日常工作中相对隔离的微服务研发模式;沟通障碍:分散在全球或全国多地的研发团队,以及由此带来的语言、文化和沟通障碍;认知…...

力扣(LeetCode)1172. 餐盘栈(C++)

优先队列 解题思路:根据题意模拟。用数组存储无限数量的栈。重在实现 p u s h push push 和 p o p pop pop 操作。 对于 p u s h push push 操作,需要知道当前从左往右第一个空栈的下标。分两类讨论: ①所有栈都是满的,那么我…...

详细说一下DotNet Core 、DotNet5、DotNet6和DotNet7的简介和区别

.NET是一种用于构建多种应用的免费开源开发平台,可以使用多种语言,编辑器和库开发Web应用、Web API和微服务、云中的无服务器函数、云原生应用、移动应用、桌面应用、Windows WPF、Windows窗体、通用 Windows平台 (UWP)、游戏、物联网 (IoT)、机器学习、…...

基于MBD的控制系统建模与仿真软件工具集

随着新能源汽车和自动驾驶技术的快速发展,汽车电子电气架构的发展已成为汽车行业推陈出新的主要动力:车内电控系统变得越来越复杂、软件迭代周期越来越短,汽车电子软件开发和测试的质量与效率要求也越来越高。汽车电控系统的设计开发已然成为…...

QML动画分组(Grouped Animations)

通常使用的动画比一个属性的动画更加复杂。例如你想同时运行几个动画并把他们连接起来,或者在一个一个的运行,或者在两个动画之间执行一个脚本。动画分组提供了很好的帮助,作为命名建议可以叫做一组动画。有两种方法来分组:平行与…...

探索未来的数字人生:全景VR数字人

在数字化时代,人工智能和虚拟现实技术正日益成为我们生活中不可或缺的一部分。而全景VR数字人,则是这一时代的最新产品,吸引了越来越多的关注和研究。 一、什么是全景VR数字人? 全景VR数字人是一种通过虚拟现实技术创造的数字人形…...

计算机基础 -- 硬件篇

首先,经常提起得计算机硬件都有啥? CPU,内存条,影片,显卡,声卡,网卡,主板,机箱电源,键鼠,显示器,音响,摄像头等 本次介绍内容为台式机与笔记本电脑的内容混合.CPU CPU(中央处理器)包含了运算器和控制器.相当于计算机的"大脑",决定了运算速度的快慢.算是电脑"最…...

【高危】Apache Superset <2.1.0 认证绕过漏洞(POC)(CVE-2023-27524)

漏洞描述 Apache Superset 是一个开源的数据可视化和业务智能平台,可用于数据探索分析和数据可视化。 Apache Superset 受影响版本在使用默认的secret_key时,攻击者可通过默认的secret_key为任意用户生成有效的会话令牌,进而绕过验证造成信…...

vue3如果用setup写如何获取类似于vue2中的this

Vue 3 是一款用于构建用户界面的 JavaScript 框架。 在 Vue 3 中,SFC(Single File Component)的 API 风格发生了变化,新增了 setup 函数而废弃了之前版本的 options API。setup 函数被认为是 Vue 3 的精华所在,它可以让…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

R语言AI模型部署方案:精准离线运行详解

R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...

day36-多路IO复用

一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...