当前位置: 首页 > 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示例。首先,我们需要创建环境,安装必要的依赖,然后…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲: 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年,数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段,基于数字孪生的水厂可视化平台的…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found"​, "n…...

【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论

路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)

LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集,单周期执行;低功耗、CIP 独立外设;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel(原始…...

全面解析数据库:从基础概念到前沿应用​

在数字化时代,数据已成为企业和社会发展的核心资产,而数据库作为存储、管理和处理数据的关键工具,在各个领域发挥着举足轻重的作用。从电商平台的商品信息管理,到社交网络的用户数据存储,再到金融行业的交易记录处理&a…...