【问题标题】:CloudFront multi site based on paths / routes基于路径/路由的 CloudFront 多站点
【发布时间】:2022-01-25 10:05:21
【问题描述】:

现有应用

我有一个托管在 S3 和 CloudFront 上的网站。 API 托管在 ECS 上,由 CloudFront 通过/api/* Behaviour 提供服务。为了处理手动输入的路由,我将错误页面 404 和 403 配置为路由到默认行为上的 /index.html。

URL         -> CF -> S3 (default origin)
URL/api/**  -> CF -> LB -> ECS+Fargate

要求

我要做的是在指向新 S3 存储桶(源 3)的新路径 /admin 下托管 Admin 站点。

URL/admin    -> CF -> S3 (Origin 3)

问题

/admin 路径中的所有流量都属于错误页面,并被路由到默认源。

我检查过的内容:

  1. 没有冲突的路径
  2. 清除缓存
  3. S3 配置在 Default Origin Bucket 和 Origin 3 Bucket 上完全相同

【问题讨论】:

    标签: amazon-web-services routes amazon-cloudfront


    【解决方案1】:

    我在删除错误页面配置时找到了解决方案。删除此配置后,我收到 Access Denied 错误。当真正没有访问权限或对象不存在时,这是错误。因此,CloudFront 似乎无法访问 S3 存储桶上的文件。

    解决方案是 /admin/ 路径需要 s3 中的 admin 文件夹以及两个路径相互映射。当我将第二个 S3 存储桶中的文件移动到正确的文件夹中时,一切都开始工作了。

    这是托管 2 个站点的好方法,这两个站点可以彼此共享 Cookie 和前端上下文,因为它们都在同一个域下。而且您也不需要为此管理 CORS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 2018-08-11
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多