将Namecheap域名与Amazon S3存储桶连接

5

我正在尝试将在Namecheap注册的域名连接到我的S3存储桶。

我查看了很多相关问题,但我的配置似乎没问题。

我可以通过AWS提供的静态网站端点访问网站,但在浏览器中输入我的自定义域名时,加载需要很长时间,最终显示无法加载页面。

我等待了超过48小时,并尝试清除我的缓存多次。

我的男朋友可以通过他的手机访问它,但我无法使用任何设备访问它(我甚至尝试使用我的移动数据)。我还要求我的妈妈(她住在另一个国家)尝试访问它,她也不能。

以下是我的主机记录:

host records

S3存储桶如下:

S3 buckets

"example.com"是我的主要存储桶。 "www.example.com"只是将所有请求重定向到主要存储桶。 这是我在主存储桶中使用的存储桶策略。

 {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::example.com/*"
        }
    ]
}

我在使用的那个位于次要桶(www.example.com)中的内容

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::www.example.com/*"
        }
    ]
}

主桶的静态网站托管配置: 主桶静态网站托管配置

次要桶的静态网站托管配置: 次要桶静态网站托管配置

我尝试对该域名进行ping测试,结果返回: 在此输入图片说明

当我尝试访问ping命令中显示的IP地址时,只会显示主S3页面。


在这个类似的问题中,他们的s3重定向与你相反。静态网站托管在www.example.com,而example.com被重定向到www.example.com。不知道这是否是您问题的原因,但也许值得检查一下? - Marcin
我刚刚尝试了一下,仍然存在同样的问题。 - Tecnogirl
当我尝试访问ping命令中显示的IP地址时,它只会显示S3主页面。这是正常的。S3使用称为“基于名称的虚拟主机”(name-based virtual hosting)的东西,依赖于浏览器来识别请求的主机名,这是零配置浏览器行为,并允许无限数量的站点使用完全相同的IP地址。忽略您在使用IP访问时看到有关S3的页面的事实--它不是您的存储桶的IP,而是由许多许多存储桶共享的IP。 - Michael - sqlbot
1个回答

6

好的,我找出了问题所在。

我的域名以.dev结尾。我不知道,但这个扩展名仅支持HTTPS。大多数浏览器都知道只支持HTTPS的扩展列表,当您输入http://example.com时,它们会自动重定向到https://example.com

我男友的手机浏览器(三星互联网)显然无法自动重定向,因此它可能会在http://上呈现我的网站。

因此,为了解决我的问题,我必须为我的域名获取SSL证书并在AWS上安装它。

这意味着使用ACM导入证书,然后创建一个使用该证书并指向S3存储桶的CloudFront分布。

现在它可以正常工作 :)


1
你应该能够使用ACM获取一个免费的证书,可以在CloudFront中使用。 - chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接