目录
2.2.3.1 使用CDN实现应用的缓存和加速
1、CDN简介
2、CDN主要特点
3、CDN服务模式
3.1、分发服务系统
3.2、负载均衡系统
3.3、运营管理系统
4、CDN工作流程
4.1、常规Web请求处理流程:6步
4.2、引入CDN后Web请求处理流程:7步
5、CDN关键技术
2.2.3.2 通过DNS实现高可靠的负载均衡和访问提速
1、DNS简介
2、DNS工作原理
2.1、DNS的域名结构
2.2、DNS解析域名到IP要经过三个阶段
3、DNS负载均衡
4、DNS与其他负载均衡工具对比
4.1、DNS负载均衡
4.2、HTTP重定向
4.3、反向代理负载均衡
4.4、NAT负载均衡
4.5、CDN
4.6、混合型负载均衡
CDN的全称是Content Delivery Network,内容分发网络
1、CDN是构建在网络之上的内容分发网络
2、CDN使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率
3、CDN依靠部署在各地的边缘服务器,包括中心平台的负载均衡、内容分发、调度等功能模块
dig命令:分析DNS服务解析过程
DNS:Domain Name System(域名系统),将域名转成IP的服务
2.1、本地Cache加速
提高了企业站点(尤其含有大量图片和静态页面站点)的访问速度,并大大提高以上性质站点的稳定性
2.2、镜像服务
消除了不同运营商之间互联的瓶颈造成的影响,实现了跨运营商的网络加速,保证不同网络中的用户都能得到良好的访问质量
2.3、远程加速
远程访问用户根据DNS负载均衡技术智能自动选择Cache服务器,选择最快的Cache服务器,加快远程访问速度
2.4、带宽优化
自动生成服务器的远程Mirror(镜像)cache服务器,远程用户访问时从cache服务器上读取数据,
减少远程访问的带宽、分担网络流量、减轻原站点Web服务器负载等功能
2.5、集群抗攻击
广泛分布的CDN节点加上节点之间的智能冗余机制,
可以有效地预防黑客入侵以及降低各种D.D.O.S攻击对网站的影响,同时保证较好的服务质量。
DDOS:Distributed denial of service(分布式拒绝服务)
内容分发网络(CDN)是一个策略性部署的整体系统,包括以下3个要件:
最基本的工作单元就是Cache设备,cache(边缘cache)负责直接响应最终用户的访问请求,
把缓存在本地的内容快速地提供给用户。同时cache还负责与源站点进行内容同步,
把更新的内容以及本地没有的内容从源站点获取并保存在本地。
Cache设备的数量、规模、总服务能力是衡量一个CDN系统服务能力的最基本的指标
主要功能是负责对所有发起服务请求的用户进行访问调度,确定提供给用户的最终实际访问地址。
两级调度体系分为:全局负载均衡(GSLB)和本地负载均衡(SLB)。
GSLB主要根据用户就近性原则,通过对每个服务节点进行"最优"判断,确定向用户提供服务的cache的物理位置。
SLB主要负责节点内部的设备负载均衡
GSLB:Global Server Load Balancing
SLB:Server Load Balancing
分为运营管理和网络管理子系统,负责处理业务层面的与外界系统交互所必须的收集、整理、交付工作,
包含客户管理、产品管理、计费管理、统计分析等功能。
1、用户在自己的浏览器中输入要访问的网站域名
2、浏览器向本地DNS(域名解析服务器)服务器请求对该域名的解析
3、本地DNS服务器中:
如果缓存有这个域名的解析结果,则直接响应用户的解析请求
如果没有关于这个域名的解析结果,则以递归方式向整个DNS系统请求解析,获得应答后将结果反馈给浏览器
4、浏览器得到域名解析结果,就是该域名相应的服务设备的IP地址
5、浏览器向服务器请求内容
6、服务器将用户请求内容传送给浏览器
1、当用户点击网站页面的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器
2、CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户
3、用户向CDN的全局负载均衡设备发起内容URL访问请求
4、CDN全局负载均衡设备根据用户IP地址,及用户请求的内容URL,选择一台用户所属区域负载均衡设备,
让用户向这台设备发起请求。
5、区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务。
6、用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端
7、如果这台缓存服务器上并没有用户想要的内容,那么这台服务器就要向它的上一级缓存服务器请求内容,
直至追溯到网站的原服务器将内容拉到本地
缓存服务器更新方法:定时任务、用户请求加参数,让缓存服务器强制更新
缓存算法
缓存代理软件:Squid
缓存算法决定命中率、源服务器压力、FTP节点存储能力
Squid:是一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议。
和一般的代理缓存软件不同,Squid用一个单独的、非模块化的、I/O驱动的进程来处理所有的客户端请求
分发能力
分发能力取决于IDC能力和IDC策略性分布
IDC:Internet Data Center(互联网数据中心)
负载均衡
负载均衡软件:Nginx
负载均衡(智能调度)决定最佳路由、响应时间、可用性、服务质量
基于DNS
DNS服务器软件:BIND
BIND:Berkeley Internet Name Domain(伯克利网络域名)
1、基于DNS的负载均衡以CNAME实现域名中转,智取最优节点服务
2、缓存点有客户端浏览器缓存、本地DNS服务器缓存
3、缓存内容有DNS地址缓存、客户请求内容缓存、动态内容缓存
支持协议
eg:静动态加速(图片加速、https带证书加速)、下载加速、流媒体加速、企业应用加速、手机应用加速
DNS:Domain Name System(域名系统),
其主要作用就是将主机名解析成IP地址的过程,完成了从域名到主机识别IP地址之间的转换。
1、DNS是一个分布式、分层次的主机名管理架构,通过配置DNS服务器地址,
主机不需要知道对应的ip地址就能通过主机名的形式访问互联网。
2、DNS利用类似倒状树的目录结构将主机名的管理分配在不同层级的DNS服务器当中,经过分层管理,
每一级DNS服务器负责部分域名信息,这就减轻了DNS服务器的负载,同时也方便记录的更新同步。
3、DNS是一个网络服务,因此就有对应的端口,其端口号为53号。DNS查询的时候,
是以udp这个较快速的数据传输协议来查询的,但万一没有方法查询到完整的信息时,
就会再次以tcp这个协定来重新查询,DNS服务在启动的时候会同时开启tcp的53号端口和udp的53号端口。
4、DNS在进行区域传输的时候使用TCP协议,其他时候则使用UDP协议。
5、FQDN(Full Qualified Domain Name):完整主机名,是由主机名和域名构成。
eg:www.baidu.com,当中www就是web网站服务器的主机名,baidu.com就是域名,
主机名和域名之间用实心点号来表示。
6、DNS是基于c/s架构(多数基于套接字架构的C/S架构),对于每一级域名长度的限制是63个字符,
域名总长度则不超过253个字符。
套接字架构比如:tcp socket
7、DNS系统记录的信息非常多,不过重点就两个:一个是记录服务器所在的NS(name server)标志,
另一个是记录主机名对应的A(address)标志。
1、DNS的域名是倒状的树状结构,在最顶层的是一个根服务器,它主要负责顶级域名的管理。
2、一级域名共分为三类,组织域、国家域、反响域,最多可以有127级域名。
3、每一级的域名服务器只负责对应下级的域的管理,其中根节点是分布在世界各地的13台服务器组成,
其中10台位于美国地区,另外3台设置于英国、瑞典、日本。
1、本地DNS缓存解析
2、本地DNS服务器解析,递归查询
3、根域及各级域名服务器解析,迭代查询
DNS负载均衡技术的实现原理是:
在DNS服务器中为同一个主机名配置多个IP地址,多个IP地址以轮询的方式选择。
使用dig工具查看对域名yes.163.com的解析
对同一个请求的域名,映射为不同的服务器IP地址。
HTTP代理(eg:浏览器)向Web服务器请求某一url后,Web服务器根据http响应头信息中的location标记来
返回一个新的url,然后http代理继续请求访问这个新的url。
反向代理指的是以代理服务器来接收对Web服务器的连接请求,然后转发给内部网络中不同的Web服务器,
并将从Web服务器请求得到的结果返回给请求连接的客户端,以Nginx为代表。
将公网地址映射为多个私网地址,解决IP地址紧张,不想让外部网络知道内部网络结构的问题。
CDN即Content Delivery Network,内容分发网络。通过发布机制将内容同步到大量的缓存节点,
并在DNS服务器上进行扩展,找到离用户最近的缓存节点作为服务提供节点。
在有些大型网络,由于多个服务器群内硬件设备、各自的规模、提供的服务等的差异,
可以考虑给每个服务器群采用最合适的负载均衡方式,然后又在这多个服务器群间再一次负载均衡或
群集起来以一个整体向外界提供服务(即把这多个服务器群当做一个新的服务器群),从而达到最佳的性能。