【问题标题】:Amazon S3: Static Web Sites: Custom Domain or SubdomainAmazon S3:静态网站:自定义域或子域
【发布时间】:2011-06-29 22:34:09
【问题描述】:

Amazon.com 刚刚宣布可以在 S3 存储桶中托管静态网站。我去了他们的设置页面http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?WebsiteHosting.html 并为我的静态网站创建了一个存储桶,它运行良好。我有一个格式为 http://[my 存储桶名称].s3-website-us-east-1.amazonaws.com/ 的 URL。

但是,我想将我拥有的子域(例如 static.mydomain.com)指向我在 Amazon S3 上的静态网站。有人知道怎么做吗?

感谢您给我的任何帮助。

【问题讨论】:

标签: amazon-s3 dns subdomain hosting


【解决方案1】:

2019 年更新:AWS 自定义 子域 在 S3 中托管

截至今天,以下步骤对我有用,为 AWS S3 托管的静态网站提供了一个工作子域:

  1. 创建带有子域名的存储桶。在这个例子中 www.subtest.mysite.com

注意:确保在存储桶的“权限”选项卡上: - 阻止公共访问(存储桶设置) -访问控制列表 & -桶策略 适当设置以确保存储桶是公开的。 (假设您已经为您的根域存储桶执行此操作,这些设置可以镜像到此子域存储桶上)

  1. 上传存储桶中的index.html文件

  1. 使用您的域提供商创建 CNAME 记录

【讨论】:

    【解决方案2】:

    事实证明,要使其正常工作,您不能将任意子域映射到任意存储桶。 完全限定的子域名必须与 S3 存储桶名称相同

    1. 假设您的网站名称是 static.mydomain.com。然后,您需要创建一个具有相同名称的 S3 存储桶,名为 static.mydomain.com
    2. 一旦您将该存储桶配置为 S3 静态网站,就会为其分配一个类似于 http://static.mydomain.com.s3-website-us-east-1.amazonaws.com 的 URL。
    3. 转到您的域名托管服务商并将您的子域映射到步骤 2 中的 URL。在 enom.com 中,这意味着将主机“静态”映射到地址“ static.mydomain.com.s3-website-us-east-1.amazonaws.com”作为 CNAME 记录。

    感谢UriahDavid 的建议。我最终在Amazon AWS forum 得到了答案。

    【讨论】:

    • 我不知道。你必须尝试一下。此外,您可能会捎带亚马逊的 SSL 证书,而不是您自己的。
    • 您实际上可以将您的 cname 指向 s3-website-us-east-1.amazonaws.com,它似乎忽略了子域并使用 HOST http 标头来指定存储桶。两者是否匹配,或者即使子域存在,似乎都无关紧要。
    • @lynks - 您甚至可以放弃该区域,直接使用 s3.amazonaws.com
    • @hnprashanth 是正确的(仅使用 S3)您最多可以有 10 个子域指向具有 CloudFront 分配的相同资源位置...查看docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
    • 这行得通。 AWS 在早期的介绍部分中说明了这一点,但是当您完成所有步骤时,很容易/可能会忘记它。这是一个比 lynks cname 解决方案更好的解决方案,因为 AWS 现在对每个用户的 cname 查找收取交易费用。
    【解决方案3】:

    【讨论】:

      【解决方案4】:
      1. 创建一个托管区域,例如 mydomain.com。您可以使用基于 Web 的 UI DNS30
      2. 现在为此托管区域创建一个 CNAME 条目。
      3. 添加资源记录 以下详细信息名称为“mydomain.com” 键入“CNAME” 值为“mydomain.com.s3.amazonaws.com” TTl 为“在您所需的配置上”

      希望这也适用于 static.mydomain.com

      问候-

      编辑

      【讨论】:

        【解决方案5】:

        确保您在创建存储桶时遵循S3 DNS bucket naming conventions

        然后:

        1. 在 Properties --> Website

        2. 使用 AWS 管理控制台为存储桶启用 S3 网站支持
        3. 确保存储桶中的文件具有公共读取权限

        4. 使用管理控制台中列出的端点尝试网站

        5. 使用列出的端点设置您的 CNAME(例如 www.example.com CNAME www.example.com.s3-website-us-east-1.amazonaws.com

        【讨论】:

        • 我完成了所有 4 个步骤。第 3 步有效。第 4 步中的 cname 配置(使用 enom.com,它与其他子域成功完成此操作),但既不能用浏览器访问我的 s3 子域,也不能 ping 它工作。使用 heroku.com 和 blogger.com,您必须告诉他们您的哪个子域将访问哪个 heroku-app 或 blogger-blog。 S3 静态网站似乎没有这个。
        • @Jay Godse 您启用网站的存储桶的名称和地区是什么?
        【解决方案6】:

        如何使用 DNS 服务,例如 Amazon 提供的 Route 53。使用从您的子域到公共存储桶 URL 的 CNAME 进行设置。当然,如果您的域名公司提供 CNAME 配置,则可以直接使用。

        【讨论】:

          猜你喜欢
          • 2017-03-23
          • 2017-08-05
          • 2018-10-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-22
          • 2014-03-06
          • 1970-01-01
          相关资源
          最近更新 更多