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:应用最广的七层反向代理,采用事件驱动模型
工作在四层负载均衡之后