在 Amazon S3 中托管静态网站而不使用 Amazon 路由 53

Posted

技术标签:

【中文标题】在 Amazon S3 中托管静态网站而不使用 Amazon 路由 53【英文标题】:Host static web site in Amazon S3 without using Amazon route 53 【发布时间】:2013-08-06 16:52:34 【问题描述】:

我尝试在 Amazon S3 中发布一个静态网站,在完成所有步骤后,我设法做到了,但几分钟后它就不再工作了。 我没有使用 Amazon Route 53,我只是使用我的域提供商 (http://my.dot.tk/cgi-bin/login01.taloha) 创建了一个 CNAME 文件。 我通过 host my endpoint 跟踪 IP,但我看到它经常变白。 我不想使用 Route 53,因为它不像 AWS 免费使用套餐那样免费。

有什么线索吗?可能是亚马逊防火墙?

【问题讨论】:

您可以免费使用 cloudflare DNS,如this question中所述 【参考方案1】:

我有同样的问题。由于我的雇主处理 DNS 的方式,我实际上不能使用 Route53。这是一个丑陋的解决方案,但我所做的是拥有一个符合免费层级条件的 t1.micro ec2 实例,该实例带有一个使用静态“弹性 ip”运行的 Web 服务器。我在 s3 中有我的静态站点,我的域名指向弹性 ip。 ec2 网络服务器提供的页面本质上是 iframe,其中包含来自 s3 的所需页面。 ec2 实例上的 html 如下所示:

<!DOCTYPE html>
<html>  
    <head>  
        <title>Title</title>
        <style type="text/css">
            body, html
                   
                margin: 0; padding: 0; height: 100%; overflow: hidden; 
                   

            #content
                   
                position:absolute; left: 0; right: 0; bottom: 0; top: 0px; 
                   
        </style> 

    </head>
    <body>  
        <div id="content">
            <iframe   frameborder="0" src="http://yoursite.s3-website-zone.amazonaws.com" />
        </div>  
    </body> 
</html> 

就像我说的,这是一个丑陋的解决方案,但它适用于我极其简单的网站。

【讨论】:

【参考方案2】:

可以,但效果不太好。您需要创建一个 CNAME 记录以映射到您不能用于顶点记录的端点。您需要一些其他方式将流量从顶点转发到大概www.domain.com

S3、Cloudfront 一组 IP 或 Geo-DNS 以确定哪个 IP 地址将为给定请求提供服务。这不是您可以在自己的 DNS 中有效复制的东西。

Route53 的成本非常低,根据流量,它可能达到每月 1 美元或更少。

【讨论】:

我现在拥有它的方式(它不起作用)是使用 CNAME 记录,即 Hostname=www.domain.com 和 IP Address=www.bucket-name.s3-website-eu -west-1.amazonaws.com 我不想使用 Route 53,因为我只是在尝试并且不打算为我的托管付费。而且因为它在一开始就起作用了,这让我想知道如何让它再次起作用。

以上是关于在 Amazon S3 中托管静态网站而不使用 Amazon 路由 53的主要内容,如果未能解决你的问题,请参考以下文章

在 CloudFront/S3 中托管 Angular 应用程序 *无需* S3 静态网站托管

Amazon S3 静态 Web 托管不适用于自定义域名(点问题)

Amazon S3 静态托管自定义域

Amazon s3 静态 Web 托管缓存

Amazon CloudFront 不遵守我的 S3 网站存储桶的 index.html 规则

使用 Amazon S3 设置自定义域