从输入URL到页面展示,这中间发生了什么
1. DNS域名解析
1.1 DNS域名解析的过程是怎样的
- 先查找浏览器DNS缓存
- 再查找操作系统DNS缓存(操作系统dnscache clinet 服务进行DNS缓存的)
- 查找hosts文件中的域名记录
- 访问非权威域名服务器查找域名
- 访问DNS解析域名:比如访问“www.apple.com”的查询过程
- 根域名服务器:
- 访问根域名服务器,它会告诉你“com”顶级域名服务器的地址
- 管理顶级域名服务器,返回“com”“net”“cn”等顶级域名服务器的 IP 地址
- 顶级域名服务器:
- 访问“com”顶级域名服务器,它再告诉你“apple.com”域名服务器的地址
- 管理各自域名下的权威域名服务器,比如 com 顶级域名服务器可以返回 apple.com 域名服务器的 IP 地址;
- 权威域名服务器:
- 最后访问“apple.com”域名服务器,就得到了“www.apple.com”的地址。
- 管理自己域名下主机的 IP 地址,比如 apple.com 权威域名服务器可以返回 www.apple.com 的 IP 地址。
1.2 有哪些非权威域名服务器
- 三大运营商DNS
- 谷歌公开的DNS
- 微软公开的DNS
- LDNS(企业内网DNS服务器)
1.3 DNS解析的ip地址是否是固定的
不是固定的,一般为了保证服务器稳定,会部署多个机器ip,保证负载均衡
DNS 解析同一个域名可以返回不同的 IP 地址
1.4 DNS是怎么做到负载均衡的呢
根据请求来源 IP,解析成距离用户最近的服务器地址:
北方的用户访问北京的机房,南方的用户访问深圳的机房
1.5 DNS缓存的优缺点有哪些
优点:
- 简单、成本低:负载均衡工作交给 DNS 服务器处理,无须自己开发或者维护负载均衡设备。
- 就近访问,提升访问速度
缺点:
- 更新不及时:DNS 缓存的时间比较长,修改 DNS 配置后,由于缓存的原因,还是有很多用户会继续访问修改前的 IP,这样的访问会失败
- 扩展性差:DNS 负载均衡的控制权在域名商那里,无法根据业务特点针对其做更多的定制化功能和扩展特性。
- 分配策略比较简单:DNS 负载均衡支持的算法少;不能根据系统与服务的状态来判断负载;也无法感知后端服务器的状态。
1.6 除了DNS负载均衡,还有哪些负载均衡方式
- 硬件负载均衡:F5 和 A10设备
- 软件负载均衡:Nginx 和 LVS Nginx 是软件的 7 层负载均衡,LVS 是 Linux 内核的 4 层负载均衡