更改 CloudFront 返回的响应代码 - Amazon CloudFront

更改 CloudFront 返回的响应代码

您可以配置 CloudFront 向查看器返回的 HTTP 状态代码,使其与 CloudFront 从源接收的状态代码不相同。例如,如果源向 CloudFront 返回 500 状态代码,您可能希望 CloudFront 向查看器返回自定义错误页面和 200 状态代码(正常)。出于多种原因,您可能希望 CloudFront 向查看器返回不同于源返回到 CloudFront 的状态代码:

  • 一些互联网设备(例如,一些防火墙和企业代理)会拦截 HTTP 4xx 和 5xx 状态代码,防止响应返回到查看器。在这种情况下,如果您替换 200,就不会截获响应。

  • 如果您不希望区分不同的客户端错误或服务器错误,可以将 CloudFront 为所有 4xx 或 5xx 状态代码返回的值指定为 400500

  • 您可能希望返回 200 状态代码(正常)和静态网站,确保客户不知道网站宕机。

如果您启用 CloudFront 标准日志并且将 CloudFront 配置为更改响应中的 HTTP 状态代码,则标准日志中 sc-status 列的值将包含您指定的状态代码。但是,x-edge-result-type 列的值不受影响。该值包含源响应的结果类型。例如,假设您将 CloudFront 配置为在源将 200(未找到)返回到 CloudFront 时将 404 的状态代码返回到查看器。当源使用 404 状态代码响应请求时,日志中 sc-status 列的值将为 200,但 x-edge-result-type 列的值将为 Error

您可以将 CloudFront 配置为随自定义错误页面返回以下任意 HTTP 状态代码:

  • 200

  • 400、403、404、405、414、416

  • 500、501、502、503、504