【问题标题】:How to use Akamai infront of S3 buckets?如何在 S3 存储桶前使用 Akamai?
【发布时间】:2018-04-10 20:23:25
【问题描述】:

我有一个静态网站,目前托管在 apache 服务器中。我有一个 akamai 服务器,它将对我的站点的请求路由到这些服务器。我想将我的静态网站移动到 Amazon S3,以避免在我的服务器中托管这些静态文件。

我在亚马逊创建了一个 S3 存储桶,并为其提供了适当的策略。我还为静态网站托管设置了存储桶。它告诉我,我可以通过

访问该网站

http://my-site.s3-website-us-east-1.amazonaws.com

我修改了我的 akamai 属性以指向这个 url 作为我的源服务器。当我访问我的网站时,我收到 Http 504 错误。

我在这里缺少什么?

谢谢 克

【问题讨论】:

  • Akamai 是否尝试使用 HTTPS?网站端点不支持 HTTPS。
  • S3 存储桶不支持 HTTPS?这意味着 Akamai 和 S3 之间的流量将通过 HTTP 发生,这对我来说是个问题

标签: ssl amazon-s3 cdn akamai


【解决方案1】:

我目前遇到了这个问题,正如 Michael - sqlbot 所提到的,将 CloudFront 放在 Akamai 和 S3 Bucket 之间可能是一种解决方法,但这样做你是在另一个 CDN 后面使用 CDN。我强烈建议您直接在 Akamai 中配置重定向并自定义原始错误时的响应(使用存储桶中的 REST API 端点)。您需要创建三个规则,但首先,转到CDN > Properties 并选择您的属性,Edit New Version 基于最后一个规则,然后单击Property Configuration Settings 部分中的Add Rule。第一条规则将负责将空路径重定向到index.html,如下图所示:

builtin.AK_PATH 是 Akamai 的变量。下一步负责将不同于静态路径(html、ico、json、js、css、jpg、png、gif等)的路径重定向到\index.html

最后一步负责在 origin 抛出 HTTP 错误代码时自定义错误响应(就像CloudFront Error Pages)。当源返回 404 或 403 HTTP 状态代码时,Akamai 将使用 /index.html 路径调用 Failover Hostname Edge Server(位于 Akamai 网络内)。当在浏览器中刷新页面以及应用程序具有重定向链接(例如打开新选项卡)时,将触发此设置。在Property Hostnames 部分中,添加一个新主机名,该主机名将用作Failover Hostname Edge Server,名称应少于16 个字符,然后添加-a.akamaihd.net 后缀(这是Akamai 模式)。例如:failover-a.akamaihd.net:

最后,创建一个新的空规则,如下图所示(在Alternate Hostname in This Property 部分输入您刚刚创建的主机名):

【讨论】:

    【解决方案2】:

    由于您已经将 Akamai 用作 CDN,因此您可以简单地使用他们的 NetStorage 产品线以简化的方式实现这一目标。

    您需要做的就是将内容从 s3 移动到 Akamai,然后它会处理其余的事情(托管、分发、扩展、安全性、冗余)。

    Luna 控制面板上的原始设置可以简单地指向 Netstorage FTP 位置。这也将消除从 Akamai 网络访问 S3 存储桶时存在的网络延迟。

    【讨论】:

      【解决方案3】:

      S3 存储桶不支持 HTTPS?

      Buckets 支持 HTTPS,但不直接与静态网站托管功能结合使用。

      请参阅 S3 开发人员指南中的 Website Endpoints,以讨论 REST 端点和托管端点的网站之间的功能集差异。

      请注意,如果您尝试使用浏览器直接连接到您的网站托管端点,您将收到超时错误。

      REST 端点 https://your-bucket.s3.amazonaws.com 将用于在存储桶和 CDN 之间提供 HTTPS,只要您的存储桶名称中没有点

      或者,如果您需要网站托管功能(索引文档和重定向),您可以将 CloudFront 放置在 Akamai 和 S3 之间,在 CloudFront 离开 AWS 网络前往 Akamai 的途中加密 CloudFront 内部的流量(它仍然在从 S3 到 CloudFront 的清除,但这是 AWS 网络上的内部流量)。 CloudFront 自动为其分配给每个分配的 dddexample.cloudfront.net 主机名提供 HTTPS 支持。

      我承认,最初将 CloudFront 置于另一个 CDN 之后听起来有点傻,但它确实非常明智—— CloudFront 的设计部​​分是为了增强 S3 的功能。 CloudFront 还提供 Lambda@Edge,它允许在请求处理周期(CloudFront 缓存之前和之后、请求期间和响应期间)的 4 个触发点注入逻辑,您可以在其中修改请求和响应标头,生成动态响应,并在需要时发出外部网络请求以实现处理逻辑。

      【讨论】:

      • 如果您不想使用 Cloudfront 怎么办。尤其是当 CDN 带宽的 Akamai 定价低于 CF 时?这些年来,S3 和 Akamai 是否实施了一些新的东西以使其成为可能?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 2019-08-09
      • 2015-09-14
      • 2015-08-28
      • 2023-03-31
      • 2012-10-03
      相关资源
      最近更新 更多