C++ 网络编程项目fastDFS分布式文件系统(九)总结
1. Location语法
1. 语法规则
location [= |~|~ * |^~ ] /uri/{…}正则表达式中的特殊字符 :- . () {} [] * + ?
客户端 : http ://localhost/helloworld/test/a. html客户端 : http ://localhost/helloworld/test//helloworld/test/a. html/helloworld/test/location /{}location /helloworld/{}location /helloworld/test/{}location =/helloworld/test/{root xxx;}http ://localhost/helloworld/test/a. htmllocation ^~ /helloworld/test/{}location ^~ /login/{}http ://localhost/helloworld/test/a. JPGlocation ~ * \ .[ jpg|png ]{}http ://192.168.1.100/login/hello/world/login. html/login/hello/world/login. htmllocation /{}location /login/{}location /login/hello/{}location /login/hello/world/{}location ~ /group[ 1-9 ]/M0[ 0-9 ]{}
练习:

匹配示例 :/ -> configuration/index.html -> configuration/documents/document.html -> configuration C/documents///images/1.gif -> configuration D/images///documents/1.jpg -> configuration E
2. 项目总结
3. 项目提炼
4. 存储节点反向代理
上图的反向代理服务器代理的是每个存储节点上部署的 Nginx- 每个存储节点上的 Nginx 的职责 : 解析用户的 http 请求 , 帮助用户快速下载文件客户端上传了一个文件 , 被存储到了 fastDFS 上 , 得到一个文件 ID/group1/M00/00/00/ wKgfbViy2Z2AJ-FTAaM3Asg3Z0782 . mp4"因为存储节点有若干个 , 所有下载的时候不知道对应的存储节点的访问地址给存储节点上的 nginx web 服务器添加反向代理服务器之后 , 下载的访问地址 :- 只需要知道 nginx 反向代理服务器的地址就可以了 : 192.168.31. 109- 访问的 url :http ://192.168.31.109/group1/M00/00/00/ wKgfbViy2Z2AJ-FTAaM3Asg3Z0782 . mp4客户端的请求发送给了 nginx 反向代理服务器- 反向代理服务器不处理请求 , 只转发 , 转发给存储节点上的 nginx 服务器反向代理服务器的配置 - nginx. conf- 找出处理指令 : 去掉协议 , iP/ 域名 , 末尾文件名 , ? 和后边的字符串- /group1/M00/00/00/ - 完整的处理指令- 添加 locationserver {location /group1/ M00{# 数据转发 , 设置转发地址proxy_pass http ://test.com;}location /group2/ M00{# 数据转发 , 设置转发地址proxy_pass http ://test1.com;}}upstream test. com{# fastDFS 存储节点的地址 , 因为存储节点上安装了 nginx, 安装的 nginx 作为 web 服务器的角色server 192.168.31.100;server 192.168.31.101;server 192.168.31.102;}upstream test1. com{# fastDFS 存储节点的地址 , 因为存储节点上安装了 nginx, 安装的 nginx 作为 web 服务器的角色server 192.168.32.100;server 192.168.33.101;server 192.168.34.102;}# ===================================存储节点上的 web 服务器的配置存储节点 1location /group1/ M00{# 请求处理root 请求的资源的根目录 ; // 存储节点的 store_path0 对应的路径 + datangx_fastdfs_module;}location /group1/ M01{# 请求处理root 请求的资源的根目录 ;ngx_fastdfs_module;}存储节点 2location /group2/ M00{# 请求处理root 请求的资源的根目录 ;ngx_fastdfs_module;}location /group2/ M01{# 请求处理root 请求的资源的根目录 ;ngx_fastdfs_module;}存储节点 3location /group3/ M00{# 请求处理root 请求的资源的根目录 ;ngx_fastdfs_module;}location /group3/ M01{# 请求处理root 请求的资源的根目录 ;ngx_fastdfs_module;}
5. https
1. 对称加密加解密秘钥是同一个2. 非对称加密公钥 , 私钥rsa -> 公钥私钥都是两个数字ecc -> 椭圆曲线 , 两个点公钥加密 , 私钥解密数据传输的时候使用私钥加密 , 公钥解密数字签名3. 哈希函数md5/ sha1/sha2得到散列值 , 散列值是定长的4. 消息认证码生成消息认证码 : ( 将原始数据 + 共享秘钥 ) * 进行哈希运算 = 散列值验证消息认证码 :( 接收的原始数据 + 共享秘钥 ) * 哈希运算 = 新的散列值新散列值和旧散列值进行比较 , 看是不是相同作用 :验证数据的一致性型弊端 :两端共享秘钥必须相同 , 共享秘钥分发困难5. 数字签名 -> 目的告诉所有人这个数据的所有者是 xxx, xxx 就是拿私钥的人生成一个非对称加密的密钥对公钥私钥生成签名 :对原始数据进行哈希运算 -> 散列值使用非对称加密的私钥 , 对散列值进行签名 ( 私钥加密 ) -> 密文得到的密文就是数字签名签名的校验 :校验这会收到签名者发送的数据原始数据数字签名对接收的数据进行哈希运算 -> 散列值使用非对称加密的公钥 , 对数字签名进行解密 -> 明文 == 签名者生成的散列值校验者的散列值 和 签名者的散列值进行比较相同 -> 校验成功了 , 数据属于签名的人失败 -> 数据不属于签名的人弊端 :接收公钥的人没有办法校验公钥的所有者。
6. 证书由一个受信赖的机构 (CA) 对某人的公钥进行数字签名CA 有一个密钥对使用 ca 的私钥对某个人的公钥进行加密 -> 证书这个人 的公钥这个人的个人信息
相关文章:
C++ 网络编程项目fastDFS分布式文件系统(九)总结
1. Location语法 1. 语法规则 location [ |~|~ * |^~ ] /uri/ { … } 正则表达式中的特殊字符 : - . () {} [] * ? 2. Location 优先级说明 在 nginx 的 location 和配置中 location 的顺序没有太大关系。 与 location 表达式的类型有关。 相同类型的表达式&a…...
第五章 树与二叉树 一、树的定义与考点
一、定义 1.树是由n (n > 0) 个节点组成的有限集合。 2.当n0时,称为空树。 3.在非空树中,有且仅有一个节点没有前驱,其他节点都有且仅有一个前驱,称为根节点。 4.每个节点有零个或多个子节点,而每个子节点又有零…...
C语言基础之——指针(下)
前言:本篇文章将继续讲解有关指针的剩余基础知识。 学无止境,一起加油叭!! 目录 一.指针运算 1.指针 - 整数 2.指针的关系运算 3.指针 - 指针 二.指针与数组 三.二级指针 四.指针数组 总结 一.指针运算 指针运算包括以下三…...
小研究 - JVM 的类装载机制
本文通过对一个类装载实例的分析,阐明了 Java虚拟机的类装载的代理机制和由此定义的命名空间,指出了类装载机制在容器/组件/抽象框架结构中的作用。 目录 1 引言 2 实例 3 分析 3.1 类装载的代理机制 3.2 Java的命名空间 3.3 解决问题 4 应…...
项目---日志系统
目录 项目系统开发环境核心技术日志系统介绍为什么需要日志系统? 日志系统框架设计日志系统模块划分代码实现通用工具实现日志等级模块实现日志消息模块实现格式化模块实现落地模块实现日志器模块同步日志器异步日志器缓冲区实现异步工作器实现 回归异步日志器模块建造者模式日…...
设计模式--建造者模式(Builder Pattern)
一、什么是建造者模式 建造者模式(Builder Pattern)是一种创建型设计模式,它关注如何按照一定的步骤和规则创建复杂对象。建造者模式的主要目的是将一个复杂对象的构建过程与其表示分离,从而使同样的构建过程可以创建不同的表示。…...
若依vue打印的简单方法
像我们后端程序员做前端的话,有时候真不需要知道什么原理,直接塞就好了 我们选用基于hiprint 的vue-plugin-hiprint来打印 目的是为了实现点击某些行的数据,然后点击某个按钮直接弹出下面的打印 此链接 大佬是原创,我拿来总结梳理一下 插件进阶功能请移步: 链接 插件模板制作页…...
Rust 基础语法学习
Rust 基础语法学习 文章目录 Rust 基础语法学习hello world变量数据类型整数类型进制表示方法浮点数类型布尔类型字符类型字符串复合类型元组结构体元组结构体 切片类型字符串切片数组切片 不可变变量与可变变量常量注释函数语句与表达式 流程控制语句if else条件判断while循环…...
iOS开发Swift-函数
1.函数的定义和调用 func greet(person: String) -> String { // 函数名 传入值 传入值类型 返回值类型let greeting "Hello" personreturn greeting } print( greet(person: "Anna") ) //调用2.函数的参数与返回值 (1)无参函数 func sayHe…...
序列化协议:JSON和XML
作者:CARROT 链接:https://www.zhihu.com/question/604811576/answer/3100483698 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 json和xml都是数据传输的格式。比如我们开发过程中需要和网…...
江西萍乡能源石油化工阀门三维扫描3d测量抄数建模-CASAIM中科广电
长期以来,石油天然气、石油石化、发电和管道输送行业在环保、健康和安全保障方面一直承受着巨大的压力,他们必须确保相关规程在各项作业中得到全面贯彻。 阀门作为流体管道运输中的组成部分,其装配密封度是保证流体运输安全的重要一环&#…...
Go【gin和gorm框架】实现紧急事件登记的接口
简单来说,就是接受前端微信小程序发来的数据保存到数据库,这是我写的第二个接口,相比前一个要稍微简单一些,而且因为前端页面也是我写的,参数类型自然是无缝对接_ 前端页面大概长这个样子 先用apifox模拟发送请求测试…...
第一个VUE程序?
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title></head> <body><div id"app">{{message}} </div><!-- 1.导入Vue.js --> <script s…...
电阻器件的分类
电阻器的种类碳膜电阻膜式电阻器中的一种。气态碳氢化合物在高温和真空中分解,碳沉积在瓷棒或者瓷管上,形成一层结晶碳膜。改变碳膜厚度和用刻槽的方式变更碳膜的长度可以得到不同的阻值。碳膜电阻成本较低,电性能和稳定性较差,一…...
QT基础教程之二 第一个Qt小程序
QT基础教程之二 第一个Qt小程序 按钮的创建 在Qt程序中,最常用的控件之一就是按钮了,首先我们来看下如何创建一个按钮 QPushButton * btn new QPushButton; 头文件 #include <QPushButton>//设置父亲btn->setParent(this);//设置文字btn-&g…...
Edge用户数据目录查找
创建 Microsoft Edge 用户数据目录变量...
最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码|霸王餐美团/饿了么系统/外卖红包cps粉丝裂变玩法源码下载
最新外卖霸王餐小程序、H5、微信公众号版外卖系统源码、霸王餐美团、饿了么系统,粉丝裂变玩源码下载,外卖cps小程序项目,外卖红包cps带好友返利佣金分销系统程序、饿了么美团联盟源码,外卖cps带分销返利后端源码,基于L…...
数据库事务四大特性
事务的4大特性(ACID): 原子性(Atomicity): 事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。 一致性(Consistemcy): 事务前后,数据库的状态都满足所有的完…...
浅谈Router和Route
router 和 route 是在前端框架中用于管理和处理路由的两个关键概念。这两者之间的关系可以通过具体的代码来解释。在本示例中,我将使用 React 和 React Router 来说明它们之间的关系。 Router(路由器):Router 是一个库或框架&…...
Linux环境安装jdk
1.安装jdk 上传jdk.tar.gz;安装包在下载内容里可以直接下载tar -zxvf jdk.tar.gz;配置环境变量:vi /etc/profile;填入以下内容;退出编辑模式,保存;然后source /etc/profile使配置生效; export JAVA_HOME/d…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
