分发——CDN
-
全称 Content Delivery Network
- 由分布在 不同地理位置的 代理服务器 组成的网络,是一种云服务IaaS
- 希望就近为空户提供服务,降低延迟,减轻服务器负载
-
一般用来托管资源
- Web资源
- 文本、图像、脚本
- 下载资源
- 媒体、软件、文档
- 应用程序
- 门户网站
- Web资源
-
两种结构
- 分散式 Scattered CDN
- 世界各地部署 尽可能多的 中低性能服务器
- 整合式 Consolidated CDN
- 只在主要数据中心有少量节点,但节点性能更强大
- 分散式 Scattered CDN
-
两种分发方式
- 推 Push CDN
- 源服务器 提前把内容推到 CDN边缘服务器 缓存起来
- 如果未命中缓存,就会返回 404
- 每次发生变化,都要上传新内容
- 适用于 小流量 或 更新不频繁 的站点
- 拉 Pull CDN
- 在用户首次访问时,自动从 源服务器 拉取新内容,并缓存起来
- 如果未命中缓存,会回源去取,因为提供有反向代理服务
- 适用于 大流量 站点,只缓存最近使用的内容
- 推 Push CDN
-
可通过特殊响应头区分,是来自源还是CDN:
X-Cache: HIT:命中缓存,响应内容来自 CDN 缓存X-Cache: MISS:未命中缓存,响应内容来自源服务器
-
实现原理
- 将子域名的解析权通过CNAME 记录交给 CDN,接着通过基于地理位置临近程度的路由策略,将请求映射到距用户最近的边缘服务器