Amazon S3:静态网站:自定义域或子域

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

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

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

我感谢您能给我的任何帮助。

amazon-s3 dns subdomain hosting
6个回答
184
投票

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

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

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


5
投票

创建存储桶时,请确保遵循 S3 DNS 存储桶命名约定

然后:

  1. 使用 AWS 管理控制台在 Properties --> Website

    为存储桶启用 S3 网站支持
  2. 确保存储桶中的文件具有公共读取权限

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

  4. 使用列出的端点设置您的 CNAME(例如

    www.example.com CNAME www.example.com.s3-website-us-east-1.amazonaws.com


4
投票
  1. 创建一个托管区域,例如 mydomain.com。您可以使用基于 Web 的 UI DNS30
  2. 现在为此托管区域创建一个 CNAME 条目。
  3. 添加资源记录 具有以下详细信息 名称为“mydomain.com” 输入“CNAME” 值为“mydomain.com.s3.amazonaws.com” Ttl 为“根据您所需的配置”

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

问候-

乌迪特



3
投票

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


2
投票

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

截至今天,以下步骤使我能够为 AWS S3 托管静态网站建立一个工作子域:

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

aws bucket

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

AWS bucket permissions

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

index file in s3 bucket

  1. 与您的域名提供商创建CNAME记录 CNAME record in namecheap
© www.soinside.com 2019 - 2024. All rights reserved.