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…...
XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Java 语言特性(面试系列1)
一、面向对象编程 1. 封装(Encapsulation) 定义:将数据(属性)和操作数据的方法绑定在一起,通过访问控制符(private、protected、public)隐藏内部实现细节。示例: public …...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...
08. C#入门系列【类的基本概念】:开启编程世界的奇妙冒险
C#入门系列【类的基本概念】:开启编程世界的奇妙冒险 嘿,各位编程小白探险家!欢迎来到 C# 的奇幻大陆!今天咱们要深入探索这片大陆上至关重要的 “建筑”—— 类!别害怕,跟着我,保准让你轻松搞…...
