CDN网站加速技术

什么是CDN?

CDN(Content Delivery Network 内容分发网络)技术通过在各个地区部署缓存节点加速用户对静态资源的获取速度,提升用户体验,降低运营成本。CDN公司有网宿(ChinaNet)、蓝讯(ChinaCache)等

CDN的基本架构和访问流程

企业使用CDN的准备:
1.静态资源有独立的域名
2.删除授权DNS服务器A记录,添加CNAME记录
3.在CDN后台进行域名绑定
 
用户访问CDN的过程:
1.用户查询本地DNS缓存,本地没有则请求LDNS查询,LDNS本地没有缓存则请求授权DNS解析;
2.授权DNS返回CNAME记录;
3.LDNS请求CDN公司的智能DNS系统解析CNAME别名;
4.智能DNS返回A记录,LDNS返回IP给用户;
5.用户根据IP请求静态资源,Cache节点本地有缓存则返回资源;
6.若Cache节点本地无缓存则请求源站,源站返回资源后Cache节点再返回给用户。
简单概括:用户通过两轮DNS查询获得IP,访问Cache节点获得资源。

CDN实现的核心技术

1.DNS视图技术:
DNS视图技术,就是对同一个域名根据请求来源(LDNS)IP地址的不同返回不同的解析结果。
#BIND视图技术(DNS View)
#定义用户来源
vim public.def

acl "SD_CTC" {
58.56.0.0/15;
58.58.0.0/16;
60.235.0.0/16;
123.168.0.0/14;
...
}

#匹配IP来源,设置不同域名解析文件
vim view.def 

include "public.def";
view "view_SD_CTC" {
match-clients {
SD_CTC;
};
zone "cache.com" IN {
type master;
file "zone/cache.zone";
}
}

vim named.conf

include view.def;
2.CDN集群缓存和代理技术
LVS负载均衡使用DR模式达到高并发高吞吐量,同时屏蔽后面的Nginx反向代理服务器;
Nginx使用反向代理(Upstream)功能,采用url_hash方式分发流量,提高缓存的命中率同时节约缓存空间;
Squid缓存服务器根据HTTP协议中有关缓存设置的规定,实现对页面和资源进行缓存以及对源站的代理。关于HTTP头部信息中的缓存规则,下次有机会再单独聊。
 
 
原文地址:https://www.cnblogs.com/Peter2014/p/7551905.html