AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1082288
Accepted
pbuzz007
pbuzz007
Asked: 2021-11-02 06:57:57 +0800 CST2021-11-02 06:57:57 +0800 CST 2021-11-02 06:57:57 +0800 CST

AWS S3 静态网站与 CloudFront OIA

  • 772

似乎有两种方法可以在 S3/CloudFront 上托管静态网站。

  1. 创建具有完全公共访问权限且静态网站设置为已启用 + CloudFront 配置的 S3 存储桶
  2. 创建没有公共访问权限的 S3 存储桶并将静态网站设置为已禁用 + CloudFront 配置

我不喜欢 (1) 是公开访问的刺眼的“不要这样做”红色文本。但它完美地工作。

我不喜欢 (2) 的地方是我失去了静态网站设置为已启用的好处,就像所有内容都自动重定向到index.html. 现在我看到root originCloudFront 设置中有一个对象,但这仅适用于我的基本域(例如mysite.com)。我的网站是一个 SPA,并且(1)如果我去mysite.com/profile它会正确地去mysite.com/index.html我认为因为我设置了 404 重定向。但是(2)去mysite.com/profile的不是 404,而是 403 访问被拒绝,我认为像 404 那样重定向并不明智。

那么即使是关于公共访问的刺眼红色文本,我是否应该坚持选项(1)?或者是否有适当的方法在没有公共访问/静态网站托管的情况下进行 SPA?

amazon-s3 amazon-web-services amazon-cloudfront
  • 2 2 个回答
  • 382 Views

2 个回答

  • Voted
  1. Best Answer
    Tim
    2021-11-02T08:40:50+08:002021-11-02T08:40:50+08:00

    对于托管在 S3 上的网站,可以安全地忽略公共访问警告。存储桶/文件是故意公开的。启用网站托管后,AWS 可能应该禁用该警告。

    CloudFront 分配显然会提供更好的性能,但对于单页应用程序,它可能不足以打扰,您的调用基于您的用户/应用程序的知识。与其依赖 Web 服务器来发出重定向,您可以不在您的应用程序中对其进行编码,以便链接是您想要的方式吗?您可以使用 CloudFront@Edge 进行重定向,但这需要额外的工作并增加一定程度的额外成本。

    • 1
  2. Rajan Khullar
    2022-03-11T12:49:20+08:002022-03-11T12:49:20+08:00

    我会选择第二个选项。S3 存储桶保持私有状态,并授予云端原始访问身份 (OAI) 的只读访问权限。并且您确保通过云端优化请求,而不是通过 s3 网站端点。

    为了绕过解析 index.html,您可以使用 lambda@edge 函数或 cloudfront 函数。AWS 文档中有后者的示例:

    https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/example-function-add-index.html

    • 0

相关问题

  • 如何将 Symantec Backup Exec 与 S3 Amazon 存储结合使用?

  • Amazon S3 是否对您的数据做出任何形式的保证?

  • Amazon S3 存储如何计费?[关闭]

  • 使用亚马逊 S3 时的注意事项

  • 用于备份等的 S3 接口 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve