向源请求添加自定义标头 - Amazon CloudFront
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

向源请求添加自定义标头

您可以配置 CloudFront 为向其发送到您的源的请求中添加自定义标头。使用这些自定义标头,您可以从源发送和收集通过典型查看器请求无法获得的信息。甚至可以为每个来源自定义这些标题。 CloudFront 支持自定义和 Amazon S3 来源的自定义标头。

源自定义标头的使用案例

您可以使用自定义标头执行各种操作,例如:

识别来自的请求 CloudFront

您可以识别您的源站收到的请求 CloudFront。如果您想知道用户是否在绕过 CloudFront,或者您正在使用多个 CDN,并且想要了解来自每个 CDN 的请求,这可能很有用。

注意

(如果您使用 Amazon S3 源并启用 Amazon S3 服务器访问日志记录,日志将不包含标头信息。)

确定哪些请求来自于特定分配

如果您将多个 CloudFront 分配配置为使用同一个来源,则可以在每个分配中添加不同的自定义标头。然后,您可以使用来自您的来源的日志来确定哪些请求来自哪个 CloudFront分发。

允许跨源资源共享 (CORS)

如果您的某些查看者不支持跨源资源共享 (CORS),则可以配置 CloudFront 为始终将Origin标头添加到它发送到您的来源的请求中。然后,可以配置您的源,以便为每个请求返回 Access-Control-Allow-Origin 标头。您还必须进行配置 CloudFront 以尊重 CORS 设置。

控制对内容的访问

可以使用自定义标头来控制对内容的访问。通过将您的源配置为仅在请求中包含由添加的自定义标头时才响应请求 CloudFront,可以防止用户绕过 CloudFront 并直接在源上访问您的内容。有关更多信息,请参阅 在自定义源上限制对文件的访问

配置 CloudFront 为向源请求添加自定义标头

要配置分配以便向其发送到源的请求添加自定义标头,请使用以下方法之一更新源配置:

  • CloudFront 控制台-创建或更新分配时,请在 O rigin 自定义标头设置中指定标头名称和值。有关更多信息,请参阅创建分配更新分配

  • CloudFront API — 对于要向其添加自定义标头的每个来源,请在里面的CustomHeaders字段中指定标头名称和值Origin。有关更多信息,请参阅CreateDistributionUpdateDistribution

如果您指定的标头名称和值尚未出现在查看器请求中,请将其 CloudFront 添加到原始请求中。如果存在标头,则先 CloudFront 覆盖标头值,然后再将请求转发到源。

有关适用于源自定义标头的配额(以前称为限制),请参阅标头的配额

CloudFront 无法添加到原始请求的自定义标头

您无法配置 CloudFront 为将以下任何标头添加到它发送到您的来源的请求中:

  • Cache-Control

  • Connection

  • Content-Length

  • Cookie

  • Host

  • If-Match

  • If-Modified-Since

  • If-None-Match

  • If-Range

  • If-Unmodified-Since

  • Max-Forwards

  • Pragma

  • Proxy-Authorization

  • Proxy-Connection

  • Range

  • Request-Range

  • TE

  • Trailer

  • Transfer-Encoding

  • Upgrade

  • Via

  • X-Amz- 开头的标头

  • X-Edge- 开头的标头

  • X-Real-Ip

配置 CloudFront 为转发标Authorization

将观看者请求 CloudFront 转发到您的来源时,默认情况下 CloudFront 会删除一些查看者标题,包括Authorization标题。为了确保您的源始终能接收到源请求中的 Authorization 标头,您可以选择以下几种方式:

  • 使用缓存策略将 Authorization 标头添加到缓存键中。源请求会自动包含缓存键中的所有标头。有关更多信息,请参阅控制缓存键

  • 使用将所有查看器标头转发到源的源请求策略。您不能在原始请求策略中单独转发Authorization标头,但是当您转发时,所有查看者标题都会在查看者请求中 CloudFront 包含Authorization标头。 CloudFront 为此用例提供了一个名为 Managed -的托管源请求策略AllViewer。有关更多信息,请参阅 使用托管源请求策略