Go语言网络与服务 | 青训营笔记

165 阅读2分钟

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

1.从输入URL到显示网页都经历了哪些步骤呢?

DNS解析 - TCP建连 - TLS握手 - HTTP请求

2.域名

1.Host管理:时效差,维护难

2.DNS:全球有13台根服务器,树状结构

3.自建DNS系统:提高效率与安全性

4.企业角度来看,更需要搭建权威DNS

如何搭建?常见开源DNS:bind、nsd、knot、coredns

3.接入HTTPS协议

1.http是明文请求,容易被抓包与篡改

2.对称加密:客户端与服务器同时持有一份密钥,但存在密钥被截获的问题

3.非对称加密:

公钥私钥为一对锁头和钥匙,公钥加密则需要私钥解密,反之亦然。

常见的算法为RSA:

服务器有公钥和私钥,服务器向客户端发送公钥,客户端使用该公钥将双方通信所需的密钥进行加密,之后发送给服务器,服务器再使用私钥解密获得双方通信所需的密钥(非对称加密)。此时双方都持有双方通信所需的密钥, 可以进行加密传输(对称加密)。

4.证书链:

公钥一定是可信的吗?会不会被劫持?

CA证书,数字签名

4.全站加速

外网用户访问站点可能存在哪些问题?

客户端可承载并发请求数过低

报文经过设备过多,容易丢包

自主选路网络链路长,时延高

1.静态加速CDN:

针对视频、图片等不变的内容,将其缓存在靠近用户的边缘节点,缓存预热后用户直接从边缘获取,从而加速访问速度

2.动态加速DCDN:

针对API类返回值不同的请求,通过特殊的网络优化方式(路由优化、传输优化)等技术加速其达到源站的速度。

5.四层负载均衡

VIP:虚拟IP,一般作为四层反向代理的入口

四层负载均衡:基于IP和端口,利用某种算法将报文转发给某个后端服务器,实现负载均衡地落到后端服务器上

常见调度算法原理:

RR轮询,加权RR轮询,最小连接,五元组HASH,一致性HASH

6.七层负载均衡

问题:四层负载均衡对某一IP地址只能bind一个80端口,而有多个外部站点需要使用,如何解决呢?

Nginx:应用最广的七层反向代理,采用事件驱动模型

工作在四层负载均衡之后