媒体 CDN 提供高级 HTTP 路由功能,可让您以精细的级别将流量映射到特定的边缘配置和源。
配置路由规则
为媒体 CDN 服务配置路由规则。
控制台
在 Google Cloud 控制台中,前往 Media CDN 页面。
如需打开要为其配置路由规则的服务的详情页面,请点击相应服务名称。
如需切换到修改模式,请点击修改按钮。
如需前往路由部分,请点击下一步。
请至少指定一条主机规则。点击添加主机规则。然后,执行以下操作:
对于主机,请至少指定一个用于匹配的主机。
对于说明,请提供主机规则的简要说明。
或者,如需修改主机规则,请点击箭头将其展开。
请至少指定一条路由规则。点击添加路由规则。
或者,如需修改路线规则,请点击相应行中的修改。
在修改路由规则窗格中,为优先级设置路由优先级值。
在说明中,提供简短的说明,以便在规则列表中识别该规则。
在匹配部分中,指定至少一个匹配条件。点击添加匹配条件。之后,执行以下操作:
- 对于匹配类型,选择任意路径匹配选项。
在路径匹配字段中,指定名称、路径或模板。请考虑使用通配符模式匹配。
如果需要,还可以选择对路径值区分大小写。
可选:选择标头匹配和查询参数匹配。然后,点击相关按钮以添加标头和查询参数。对于每个标头和查询参数,请指定名称、匹配类型和值。
如需了解详情,请参阅根据标头和查询参数进行匹配。
如需保存匹配条件,请点击完成。
对于主要操作,选择以下选项之一:
从来源提取:如需将请求定向到特定来源,请选择此选项,然后选择一个来源。
网址重定向:如需重定向请求,请选择此选项。然后,指定重定向类型、路径和状态代码。
您可以选择将所有响应重定向到 HTTPS 或剥离查询。
点击高级配置。
在标头操作部分中,点击添加内容。
选择一种操作类型,然后将标头指定为名称-值对。接着,点击完成。
在路由操作部分中,点击添加内容。
指定操作类型及其相关选项。接着,点击完成。
对于 HTTP 方法过滤,请选择自定义 HTTP 方法过滤。
然后,选择要代理到源的 HTTP 方法。
如需保存路由规则,请点击保存。
如需保存对服务的更改,请点击更新服务。
gcloud 和 YAML
将 Media CDN 配置导出到 YAML 文件中。使用
gcloud edge-cache services export命令。gcloud edge-cache services export SERVICE_NAME \ --destination=FILENAME.yaml替换以下内容:
SERVICE_NAME:服务的名称FILENAME:YAML 文件的名称
按照本页各部分中的说明,使用所需的配置更新 YAML 文件。
如需更新服务,请从 YAML 文件导入 Media CDN 配置。使用
gcloud edge-cache services import命令。gcloud edge-cache services import SERVICE_NAME \ --source=FILENAME.yaml
匹配请求
媒体 CDN 配置包含在 Routing 部分中为 EdgeCacheService 资源定义的一组路由。这些路由至少会根据主机来匹配请求。如需详细了解如何将流量定向到源站,请参阅 HostRule 和 PathMatcher。每个路由都可以定义自己的 CDN 配置、重写、重定向、CORS 政策、自定义 HTTP 标头和源站映射。路由可以共用源站。
例如,您可以将清单请求路由到特定源站,并定义短效缓存 TTL 和负缓存政策。可以使用标头和查询参数将细分请求拆分到其他来源,以分离出特定的清单类型或用户。
以下示例展示了如何为主机 media.example.com 路由与特定标头、查询参数和路径前缀匹配的请求:
name: prod-service routing: hostRules: - hosts: - media.example.com pathMatcher: example_routes pathMatchers: - name: example_routes routeRules: - priority: 10 origin: staging-live-origin matchRules: - prefixMatch: /vod/ headerMatches: - headerName: "x-staging-client" presentMatch: true queryParameterMatches: - name: "live" exactMatch: "yes" routeAction: cdnPolicy: defaultTtl: 5s
路径匹配
媒体 CDN 支持完整(完全)、前缀和通配符路径匹配。路径匹配可以与基于主机、标头和查询参数的匹配相结合,以构建精细的请求路由规则。
以下是三种匹配网址路径的方法。
| 字段 | 说明 | 示例 |
|---|---|---|
matchRules[].fullPathMatch
|
fullPathMatch 条件与完整网址路径匹配,但不包括查询字符串。您必须指定尾部斜杠(如果相关)。
|
匹配规则为
|
matchRules[].prefixMatch
|
prefixMatch 条件匹配网址路径前缀;以相同字符串开头的网址会匹配。
|
如果路由的匹配规则为 |
matchRules[].pathTemplateMatch
|
pathTemplateMatch 条件支持通配符运算符,可用于匹配复杂的网址格式和路径段,以及捕获用于重写网址的命名变量。
|
匹配规则为
如需查看更多示例,请参阅模式匹配部分。 |
如需了解详情,请参阅 MatchRule 的 API 规范。
例如,如需匹配以 /stream/ 开头的所有请求,请创建类似于以下内容的路由规则:
name: prod-service routing: hostRules: - hosts: - media.example.com - *.vod.example.com pathMatcher: example_routes pathMatchers: - name