Amazon CloudFront
开发人员指南 (API 版本 2016-09-29)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

将自定义标头转发到源

可将 CloudFront 配置为在向源转发请求时始终包含自定义标头。可为每个源 (包括自定义源和 Amazon S3 存储桶) 指定自定义标头的名称和值。

注意

转发自定义标头仅适用于 Web 分配。

自定义标头有多种用途,如下所示:

  • 您可以标识由 CloudFront 转发到自定义源的请求。如果您想知道用户是否绕过 CloudFront 或者您使用了多个 CDN 并且希望了解有关哪些请求来自每个 CDN 的信息,此功能很有用。(如果您使用 Amazon S3 源并启用 Amazon S3 服务器访问日志记录,日志将不包含标头信息。)

  • 如果将多个 CloudFront 分配配置为使用相同的源,您可以为每个分配中的源指定不同的自定义标头,并使用 Web 服务器的日志区分 CloudFront 为每个分配转发的请求。

  • 如果某些用户使用的查看器不支持跨源资源共享 (CORS),您可以配置 CloudFront 以将 Origin 标头转发到源。这将使得源为每个请求返回 Access-Control-Allow-Origin 标头。

  • 可以使用自定义标头,也可以选择使用签名 URL 或签名 Cookie,来控制对自定义源中内容的访问。如果您将自定义源配置为仅在请求包含自定义标头时响应请求,则可禁止用户绕过 CloudFront 直接向源提交请求。有关更多信息,请参阅 在自定义源上限制对文件的访问

将 CloudFront 配置为将自定义标头转发到源

要将 Web 分配配置为将自定义标头转发到源,可以使用以下方法之一更新源的配置:

CloudFront 控制台

在创建或更新分配时,请在源自定义标头设置中指定标头名称和值。有关更多信息,请参阅创建分配

CloudFront API

对于要将自定义标头转发到的每个源,请将标头名称和值添加到 CustomHeaders 复杂类型的 DistributionConfig 部分。有关更多信息,请参阅 CreateDistribution(创建新分配)或 UpdateDistribution(更新现有分配)。

如果您指定的标头名称和值在查看器请求中尚不存在,CloudFront 将添加这些标头名称和值。如果标头存在,CloudFront 会在将请求转发到源之前覆盖该标头值。

有关将自定义标头转发到源的当前限制,请参阅限制

CloudFront 无法转发到源的自定义标头

不能将 CloudFront 配置为将以下自定义标头转发到源。

Cache-Control

Proxy-Authorization

Connection

Proxy-Connection

Content-Length

Range

Cookie

Request-Range

Host

TE

If-Match

Trailer

If-Modified-Since

Transfer-Encoding

If-None-Match

升级

If-Range

Via

If-Unmodified-Since

以 X-Amz-* 开头的标头

Max-Forwards

以 X-Edge-* 开头的标头

Pragma

X-Real-Ip

将自定义标头用于跨源资源共享 (CORS)

可将 CloudFront 配置为始终将标头转发到源,以适应不在请求中自动包括这些标头的查看器。您还需要将 CloudFront 配置为遵循 CORS 设置。有关更多信息,请参阅 将 CloudFront 配置为遵守 CORS 设置

使用自定义标头来限制对内容的访问

您可以配置 CloudFront 始终将特定标头转发到源以作为配置的一部分,用于限制对您源上内容的访问。有关更多信息,请参阅 在自定义源上限制对文件的访问

将 CloudFront 配置为转发授权标头

当它转发请求到您的源时,默认情况下,CloudFront 会删除一些标头,包括授权标头。如果要始终转发特定缓存行为的授权标头,请确保将该缓存行为的标头列入白名单。要了解更多信息,请参阅“白名单标头”。