开放服务 | 青训营笔记

129 阅读3分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第8篇笔记

简介

image-20220523094631937

image-20220523094648712

从浏览器到服务器
域名解析
TCP握手
TLS验证
HTTP请求

企业级网络搭建

域名系统

image-20220523100733675

image-20220523100923139

image-20220523100956527

image-20220523101109445

一级管理
host文件管理

二级管理
域名系统

开放外部用户访问



自建DNS服务器

image-20220523101222706

image-20220523101243463

image-20220523104132686

image-20220523111433534

image-20220523155551037

当使用公有云上的DNS服务器时,可能出现一些问题,这时需要公司自建服务器

迭代查询时刻需要对DNS根服务器、域服务器分别查询


DNS服务器的几种请求:
DNS Query 客户请求解析IP地址
DNS Response 向客户发送解析结果
DNS Update 向DNS服务器发送更新请求
DNS Notify DNS主服务器向从服务器发起更新提醒
DNS XFR DNS从服务器向主服务器发起更新请求






HTTPS协议

image-20220523155845216

image-20220523155855279

image-20220524051744776

image-20220524051838606

对称加密和非对称加密
对称加密一份密钥、非对称加密公钥和私钥

SSL的通信过程:
客户端向服务器端发送hello,clientrandom字符串以及客户端支持的TLS版本以及密码组合
服务器端收到客户端的请求后,发送hello到客户端,serverrandom字符串和服务器选择的密码组合还有加密公钥
客户端收到加密公钥后,使用CA的公钥解密得到公钥,并使用公钥加密一个对称密钥premaster secret发送给服务器端
服务器收到加密对称密钥,使用自己的私钥解密出对称密钥之后就可以与客户端自由通信了(对称密钥是使用之前协商好的加密算法算出来的)


服务器端的摘要信息,也就是指纹会被上级CA的私钥加密,这个就被称为数字签名,也就是发送给客户端的加密公钥。上级CA公钥其实也是被顶级CA的私钥加密过的,经过顶级CA的公钥解密就可以解密出上级CA的公钥,也就可以解密服务器端的加密公钥了



接入全站加速

image-20220524052628065

image-20220524052703688

image-20220524052938927

image-20220524052957921

image-20220524053401513

静态加速:将静态资源缓存到CDN节点上

动态加速:在DCDN节点上,将动态请求尽可能快的送回源站




四层负载均衡

image-20220524054029282

image-20220524054857649

image-20220524055212098

四层负载均衡,本质上是TCP/IP层的转发,也就是传输层的转发
利用某种算法将报文转发给后端服务器,使得请求均匀的分派给后端服务器

常见的调度算法原理:
RR轮询:Round Robin,将所有的请求平均分配给每个真实服务器RS
加权RR轮询:给每个后端服务器一个权值比例,将请求按照比例分配
最小连接:把新的连接请求分配到当前连接数最小的服务器
五元组hash:根据源IP源端口目标IP目标端口协议对静态分配的服务器做散列取模
一致性hash:只影响故障服务器上的session,其余服务器上的连接不受影响


可以通过TCPoption字段传递客户端ip,就算使用了不同于客户端的ip进行消息传递,也可以通过特殊的内核模块反解出来客户端ip



七层负载均衡

image-20220524055416253

image-20220524055513853

image-20220524055728060

image-20220524055910505

image-20220524060803116

image-20220524060814145

image-20220524060823749

image-20220524061010478

image-20220524061057594

为了处理四层负载均衡对HTTP报文无法处理的问题



模块化设计
较小内存消耗