媒体 CDN 是 Google Cloud 的媒体分发解决方案。媒体 CDN 是对 Cloud CDN(Google Cloud 的 Web 加速解决方案)的补充。媒体 CDN 针对高吞吐量出站流量工作负载(例如流式视频和大型文件下载)进行了优化。
边缘缓存通常是指位于 PoP 或合作伙伴 ISP 中、将内容存储在更靠近最终用户的位置的服务器基础架构。媒体 CDN 使用 Google 的全球边缘缓存基础架构,尽可能在靠近用户的位置传送内容。通过使用 Google 的基础架构来传送内容,您可以减轻源站基础架构的负载。
借助媒体 CDN,您可以轻松从可公开访问的 HTTP 端点提取内容。无论内容是托管在 Cloud Storage 中、其他云中还是本地基础架构中,您都可以将媒体 CDN 与现有源站基础架构搭配使用。
您可以控制为路由中提供的每个 URI 缓存内容的方式。借助路由,您可以根据内容类型、客户端属性以及您使用 Media CDN 定义的每条路由的新鲜度要求来优化行为。
如需有关使用哪种 CDN 产品的指导,请参阅选择 CDN 产品。如果这两种产品都能满足您的需求,您可以同时使用它们。
媒体 CDN 的工作原理
媒体 CDN 包含三个主要组件:
- 路由器
- 缓存
- 缓存填充器
从概念上讲,这些组件之间的连接关系如下图所示:
路由器和缓存组件使用其使用的 IP 地址和协议、安全和缓存政策以及路由配置进行配置。该配置包含在 EdgeCacheService
资源中。路由器使用 EdgeCacheService
中所述的 HeaderAction
来确定路由器修改请求的方式(包括标头操作和路径重写)。
Media CDN 会在反向代理中终止用户 HTTP 请求。反向代理会将 HTTP 请求与 Routing
配置进行匹配。路由配置定义了如何路由、修改、缓存和填充 HTTP 请求。
如果配置的缓存组件缺少用户请求的内容(称为“缓存未命中”),则缓存组件会向配置的上游来源请求内容。Media CDN 使用请求参数(例如主机、路径和查询参数)作为缓存键。您可以配置 Media CDN 将哪些项视为缓存键的一部分,这可以减少 Media CDN 向上游源站发出的请求。如需了解详情,请参阅缓存键。
缓存填充程序每次与上游源联系时都会发出新请求。当缓存填充程序与上游源站联系时,它会保存原始请求。然后,对于每次尝试为缓存请求的项填充缓存时,缓存填充程序都会复制原始请求的标头,并根据 EdgeCacheOrigin
中的设置修改请求。
由于缓存组件位于路由器之后,而缓存填充程序位于缓存组件之后,因此缓存填充程序只能访问路由器修改的标头。缓存填充程序不会也不会撤消路由器所做的标头更改。不过,缓存填充程序仅在使用特定 EdgeCacheOrigin
资源时才会对给定 EdgeCacheOrigin
资源应用修改。
当缓存组件包含请求的内容时,它会将内容返回给路由器,以返回给下游用户代理。
媒体 CDN 功能
以下部分简要介绍了 Media CDN 的功能。
SSL (TLS) 证书支持
Media CDN 内置了对从您自己的网域传送经过传输层安全协议 (TLS) 加密的 (HTTPS) 流量的支持。媒体 CDN 会作为自有 (BYO) 网域从您自己的网域提供,而无需 Google 托管的网域。
传送 SSL (TLS) 流量或获取 Google 托管式 SSL 证书无需支付额外费用。
如需了解详情,请参阅 SSL (TLS) 证书。
Google Cloud Armor 支持
Media CDN 支持 Google Cloud Armor 边缘安全政策。Media CDN 使用 Google Cloud Armor 来允许或拒绝对内容的访问。Google Cloud Armor 支持 IP 地址许可名单和拒绝名单、地理位置和第 7 层标头过滤控件,并支持通过插入自定义标头来修饰请求。
如需了解详情,请参阅配置安全政策。
可扩展性
借助媒体 CDN,您可以使用 Service Extensions 插件(预览版)将自定义代码添加到请求-响应处理路径。此类自定义功能可解锁各种轻量级用例,例如标头规范化和自定义令牌化。
如需了解详情,请参阅在媒体 CDN 路由中部署 Service Extensions 插件。
源站身份验证
媒体 CDN 支持通过源站身份验证将私有 Cloud Storage 存储分区用作源站。您可以向媒体 CDN 授予对私有 Cloud Storage 存储分区的访问权限,并对请求进行身份验证,以确保仅授予有效的媒体 CDN 请求。
如需了解详情,请参阅来源连接和屏蔽。
高级路由功能
媒体 CDN 提供高级 HTTP 路由功能,可让您以精细的级别将流量映射到特定的边缘配置和源。
如需了解详情,请参阅高级路由。
客户端连接功能
媒体 CDN 支持从客户端到边缘的 HTTP/2 和 QUIC 等现代网络协议,从而提高吞吐量并缩短总体网络延迟时间。
如需了解详情,请参阅客户端连接和 IP 地址。
缓存失效操作
缓存失效(也称为清除缓存)是指缓存内容被声明为无效。当内容被声明为无效时,系统会将其从缓存中移除,然后在下次请求该内容时从源服务器重新填充。
媒体 CDN 支持以下内容失效方式:
- 按主机和网址路径
- 按网址前缀和通配符
- 通过缓存代码,包括用于状态、来源和媒体类型的内置代码
您可以组合使用失效参数来定位特定的缓存响应,并尽可能减少后续缓存填充对源站的负载。
如需了解详情,请参阅缓存失效。
自定义 HTTP 标头
借助媒体 CDN,您可以指定自定义 HTTP 标头。自定义请求标头支持静态值,而自定义响应标头支持静态值和动态值。
借助自定义标头,您可以执行以下操作:
返回客户的地理位置数据,您可以使用这些数据显示本地化内容,例如国家/区域或城市。
确定响应是否从缓存中传送(全部或部分),以及从哪个缓存位置传送。
剥离或替换请求和响应标头。
如需了解详情,请参阅定义自定义标头。
与 Cloud Logging 集成
媒体 CDN 还支持与 Google Cloud 的日志记录服务集成。
Media CDN 会将客户端与边缘服务器之间以及 Media CDN 与源服务器之间的每个 HTTP 请求记录到 Cloud Logging (Logging)。日志通常以近乎实时的方式传送。您可以在 Logging 中查询日志,并将其导出到 Cloud Storage 或 Pub/Sub。
如需了解详情,请参阅日志记录指南。
已签名的请求
媒体 CDN 支持使用签名 Cookie 和签名网址进行内容身份验证。借助签名请求,您可以限制对特定网址前缀的访问权限,并将其限定在有限的时间段内和特定客户端。
如需了解详情,请参阅使用已签名请求。
请求访问权限
如需请求访问媒体 CDN,请与您的 Google Cloud 销售代表或客户支持团队联系。然后,按照快速入门试用 Media CDN。