【问题标题】:Webserver and Cloudfront distribution with the same domain name具有相同域名的 Webserver 和 Cloudfront 分发
【发布时间】:2021-12-02 09:06:18
【问题描述】:

我们有一个在 example.com 上运行的 (django) wep 应用程序,我们希望通过来自同一域的云端在 s3 上提供一些静态资产。因此,如果我们有一个包含关键 assets/img.jpg 的文件,我们将能够通过 example.com/assets/img.jpg 访问它。

我们一直在尝试使用这个guide,但只能让它与子域一起工作以访问 cloudfront 所以 static.example.com/assets/img.jpg

我们遇到的问题是 DNS 设置,已经有一个 CNAME for example.com(网络应用程序)将流量路由到服务器,但我们无法创建具有相同名称的第二个条目 example .com 到云端分发。

【问题讨论】:

    标签: amazon-s3 amazon-cloudfront


    【解决方案1】:

    为此,请转到 Cloudfront 发行版的配置。

    从那里,您需要创建另一个指向该 S3 存储桶的“来源”,然后为“/assets/*”路径创建一个“行为”,以将流量发送到该 S3 存储桶。

    【讨论】:

    • 非常感谢您的回复,这似乎可行,但在 DNS 设置中遇到问题,为 example.com 创建两个 CNAME 条目,一个到网络服务器,一个到云端。
    • 您不需要 2 条 cname 记录,只需要一条 A 记录到云端分发 url。您的 Web 应用程序和您的 s3 存储桶都应该是默认行为将流量路由到您的 Web 服务器(在 EC2 中运行?)的源,您将为 /assets/* 路径创建的其他行为会将流量发送到您的 S3 源。
    • 我尝试了这个但不太确定如何实现,我有一个 A(别名)记录,例如 example.com 指向云端分发和 /assets/* 的分发行为指向 s3 存储桶,但是我将如何为具有相同 example.com 域的应用程序创建一个源,Route 53 拒绝这个。
    • 您不需要多个记录,您的 Web 服务器和您的 s3 存储桶都应该是您的云端分发中的来源,而不是 route53 中的单独记录。我很困惑您的问题出在哪里,您正在描述我为 3 个单独的站点设置的设置,其中 2 个是 rails 应用程序,另一个是 python 应用程序,它们的资产都存储在 S3 存储桶中。了解 Cloudfront 是一个反向代理及其工作原理非常重要。
    • 啊,我看到了我的错误,我很困惑在源域中放置什么,以便插入我的 EC2 的公共 IPv4 DNS 条目的 Web 应用程序解决了这个问题。我要去example.com查看并使用该应用程序。但是我无法访问我在存储桶中放置了 test.txt 文件的 s3 文件,然后转到 example.com/assets/test.txt 并得到了 404(似乎正在通过应用程序运行,因为它正在检查url conf 那里)。
    猜你喜欢
    • 1970-01-01
    • 2020-01-12
    • 2017-08-29
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2018-03-16
    • 2021-02-10
    相关资源
    最近更新 更多