为了更新 S3 静态网站而创建“/*”失效后出现 CloudFront 错误 504

问题描述 投票:0回答:2

如果对此有任何见解或帮助,我们将不胜感激。

作为前言,我对 AWS 有点陌生,目标是为学校项目托管一个静态网站(如果重要的话,用 Angular 编写)。

当前配置/设置如下:

我的域名 example.com 的 Godaddy

Route 53,添加了 Godaddy 中指定的 AWS NS 记录

证书管理器中的证书。 AWS 指定的两条 CNAME 记录已添加到 Route 53,CNAME 记录未添加到 Godaddy

两个 s3 存储桶,一个是 example.com,另一个是 www.example.comwww.example.com 配置为仅路由到 example.com。 index.html 以及其他 JS 和 CSS 的 dist 文件已添加到 example.com 存储桶,而不是 www.example.com 存储桶。

CloudFront 发行版,用于向 https://www.example.comhttps://example.com 提供 HTTPS 请求。现在它只是配置为将 HTTP 重定向到 HTTPS

昨天晚上,一切都很顺利。 HTTPS 正常工作,HTTP 重定向到 HTTPS,我让一些朋友从世界不同的地方测试了该网站 - 一切都很完美。

问题是我需要在进行一些更改后将代码更新到网站,并推送到 example.com 存储桶。我使用 @jefiozie/ngx-aws-deploy 从 VScode 部署到 AWS s3 存储桶中。

新代码已在 example.com s3 存储桶中成功更新,但我注意到访问网站时它没有生效。访问s3默认bucket端点时,网站仍然没有更新。

在研究了堆栈溢出和一些 subreddits 之后,人们建议完成 CloudFront 的失效,以便使用对象路径“/*”获取 s3 存储桶的新更新

完成后,没有任何效果。对 example.com 和 www.example.com 的 HTTP 和 HTTPS 请求导致 504 错误:无法满足请求。然而,s3 默认存储桶端点仍然可以工作(尽管没有更新网站)。

在撰写本文时,仍然存在 504 错误。有趣的是,s3 默认存储桶端点确实获取了更新,并且网站也根据我们昨晚对代码所做的更改进行了更新。这让我相信它可能与 s3 中某处的 TTL 配置有关?

如何修复云前端分布以便将 HTTPS 请求返回到 s3 存储桶?

我应该如何最好地优化将更改推送到 s3 存储桶以避免将来出现类似问题?

我应该对任何服务进行哪些配置?

在研究了堆栈溢出和一些 subreddits 之后,人们建议完成 CloudFront 的失效,以便使用对象路径“/*”获取 s3 存储桶的新更新

完成后,没有任何效果。对 example.com 和 www.example.com 的 HTTP 和 HTTPS 请求导致 504 错误:无法满足请求。然而,s3 默认存储桶端点仍然可以工作(尽管没有更新网站)。

angular amazon-web-services amazon-s3 amazon-cloudfront amazon-route53
2个回答
0
投票

您可能已经弄清楚了这一点,但我今天遇到了同样的问题,并且能够通过我认为“重置”原点的方法来解决它。我选择了我的源,选择了编辑,然后清除了源域,然后重新选择了 S3 存储桶网站端点并保存了。部署后,我就可以毫无问题地访问。


0
投票

有一种简单的方法可以将证书和 Route53 连接到部署在 AWS CloudFront 上的静态站点。

SWS控制台快速云架构构建服务。

您可以通过简单的输入轻松控制AWS资源。请参阅以下文档:

如何使用SWS控制台轻松部署到AWS S3 + CloudFront架构

如何创建证书并使用SWS控制台连接Route53域

您可以随意使用SWS Console轻松部署到AWS S3 + CloudFront架构并创建证书和连接Route53域!

进入Sws控制台服务页面

© www.soinside.com 2019 - 2024. All rights reserved.