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

向源请求添加自定义标头

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

注意

添加自定义标头的操作仅适用于 Web 分配。

源自定义标头的使用案例

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

标识来自 CloudFront 的请求

您可以标识您的源从 CloudFront 接收的请求。如果您想知道用户是否绕过 CloudFront 或者您使用了多个 CDN 并且希望了解有关哪些请求来自每个 CDN 的信息,此功能很有用。

注意

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

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

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

允许跨源资源共享 (CORS)

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

控制对内容的访问

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

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

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

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

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

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

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

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 配置为转发授权标头

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