【问题标题】:GCE: Enable CDN for an existing VM instance / Adding an existing VM instance to a new regional instance groupGCE:为现有 VM 实例启用 CDN / 将现有 VM 实例添加到新的区域实例组
【发布时间】:2017-08-30 02:04:25
【问题描述】:

我有一个运行 WP 站点的 GCE VM 实例,它安装了点击部署。运行得很好,我设法在 pingdom-tools 上从斯德哥尔摩获得了 600 毫秒的页面。来自美国达拉斯的情况不太好:~4s,来自澳大利亚...>6s。

除 CDN 外,所有优化均已完成。由于我在云中运行,我以为很容易,但我很天真。

我正在尝试启用 Google CDN,但我对文档感到困惑。

尝试 1: 尝试创建负载平衡并从我的 wp-instance 添加存储桶,但我没有得到任何结果。我没有做的是将LB IP添加到我的DNS。

Q1:我必须这样做(DNS 中的 IP)吗?我不清楚。

尝试 2 创建实例组,区域。听起来不错,但我已经有一个实例,有一个固定的 IP 和一个与之连接的域。

Q2:如何将现有实例添加到新创建的组中?或者我不能?

我的 WP 网站是一个超级简单的网站,用于公司演示,所以我不需要计算能力。并行下载静态资源就足够了,但为了学习,我愿意加倍努力,创建安装 CDN 所需的任何内容。

Q3:有没有更简单的方法来为静态资源创建 CDN?

【问题讨论】:

  • 非托管实例组有帮助吗? cloud.google.com/compute/docs/instance-groups/…
  • 如果我错了,请纠正我,但是当我从单区切换到多区时,我无法再将我的实例添加到组中。这个想法不是在同一个区域上拥有多个实例,而是在全球范围内部署它,因此是多个区域。我错过了什么吗?我仍然期望静态资源的简单 CDN 应该更简单。

标签: google-cloud-platform google-compute-engine


【解决方案1】:

Google 的 CDN 需要负载平衡。所以你需要设置它。具体来说,您希望:

TargetHttpProxy -> UrlMap -> BackendService -> (Zonal) Unmanaged InstanceGroup -> 你的 WP 实例。

这是从 API 和 CLI 看的样子。如果您使用的是 Web UI,只需设置一个普通的 HTTP 负载均衡器并为实例组请求区域和非托管。

稍后,您可以在另一个专区(或区域)中添加另一个非托管实例组,并将其附加到同一个 BackendService 以实现负载平衡。它是您启用 CDN 的 BackendService。


为什么是区域非托管实例组?

首先,只有非托管实例组允许您添加不是由 InstanceGroupManager 创建的实例。由于唯一类型的非托管实例组是地区非托管实例组,因此这是您唯一的选择。但这并不太重要,因为您可以简单地创建更多实例组。

【讨论】:

  • 嗨@Stephen Weinberg,感谢您的回复。我使用了“答案”,因为“评论”对于我的回复来说不够大。如果您需要更详细的反馈,请告诉我。
【解决方案2】:

答案是:

可以,但没用/托管实例不能。

在我个人看来,Google CDN 还需要进一步发展。
主要问题:

  • 没有“原点拉取”方法
  • 没有 gzip 或任何其他形式的处理
  • 每个文件都需要手动设置为公开可用。您不能设置文件夹,并且文件夹结构中没有递归传播。
  • 我遇到了与权限相关的非常奇怪的错误。我的实例可以将存储桶中的文件复制到服务器中,但无法写入。经过数小时的搜索,修复方法是为某些文件设置权限。

大约 10 个小时的……实验。然后,我在几秒钟内在 AWS 上设置了一个 CDN 作为复制/粘贴域名,只需单击几下即可。 所以也许只有我一个人,但我认为在这一点上它是一个可以改进的产品。

我尝试了什么: 我已经启动了一组托管实例,安装了带有“hello world”+ 1 张图片的 WP。您从 cmd 行执行此操作,单击部署在这里不起作用。
然后我用 BlazeMeter 进行了压力测试,它自动缩放到 10 个实例(左右)。在那方面做得很好。
CDN 已启用,但 Google Pagespeed 一直在尖叫以并行下载,并且没有其他域,那么主要的域是在 URL 中被发现的。此外,现在的加载时间与安装 CDN 之前的时间相同,所以......并不是我真正需要的。

之后,我通过存储桶创建了另一个 CDN,它作为 CDN 工作。但是,没有可用的 PULL。您可以通过漂亮的拖放界面复制/粘贴相关文件。不够好,所以我尝试使用 rsync 只是陷入了许多权利冲突。最后它奏效了。然后我需要为每个文件设置公开可用的权限。无法设置文件夹,因此您需要输入每个文件夹,仅选择文件并点击按钮。也这样做了。现在它正在工作。但是不支持 gzip,这会导致我的总时间增加。没有其他方法可以解决这个问题,然后自己 gzip 文件并再次上传。手动。

所以我放弃并使用了我在不到 1 分钟内设置的另一个 CDN。
我相信我需要再等一段时间,直到 Google CDN 成熟。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 2021-06-01
    • 1970-01-01
    • 2016-11-10
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多