本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
向源请求添加自定义标头
您可以配置 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
。有关更多信息,请参阅CreateDistribution或UpdateDistribution。
如果您指定的标头名称和值尚未出现在查看器请求中,请将其 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
标头,您可以选择以下几种方式: