【问题标题】:amazon cloudfront returns 404 error for all the error response from originamazon cloudfront 为来自 origin 的所有错误响应返回 404 错误
【发布时间】:2019-08-01 04:09:22
【问题描述】:

Aws CLoudfront 不返回源服务器返回的错误代码,而是重新调整不同的错误代码。

这里我的源服务器是 AWS elb,我已经在 cloudfront 的行为部分配置了所有路径(*)到 elb 源。

当我点击 http://xxxx.cloufront.net/path1 时,我得到 404,当我直接在 elb (http://elburl/path1) 上点击相同的 url 时,我得到 401

401 是预期的,因为应用程序(elb 后面)需要 auth 标头,并且由于标头不存在所以它返回 401

对于上面的请求,我可以在elb日志中看到401错误码,在cloudfront日志中看到404错误码,表示elb返回401(app返回)

注意:我没有在云端配置任何自定义错误页面。

【问题讨论】:

  • 除非您有一个重写该状态代码的 Lambda@Edge 源响应触发器,否则没有合理的解释。 CloudFront 本身甚至不支持自定义 401 错误 - 它仅支持 400、403、404、405、414、416、500、501、502、503 和 504。响应中的内容 body来自 CloudFront?它是来自你原产地的正确身体吗?响应中返回了哪些标头?您确定通过 CloudFront 的请求出现在 ELB 日志中吗?它是经典平衡器还是应用平衡器?
  • 因为它需要 auth 标头,所以在 cloudfront 中设置一个并尝试。还要检查 Origin 设置中的路径是否设置为 / 或为空。

标签: amazon-web-services amazon-cloudfront


【解决方案1】:

您可以让 CloudFront 将对象返回给查看器(例如,HTML 文件)当您的 Amazon S3 或自定义源返回 HTTP 4xx 或 5xx CloudFront 的状态代码。

试试setting error object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2013-06-09
    • 2011-01-21
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-21
    相关资源
    最近更新 更多