【问题标题】:How do I assign the same domain name to 2 App Engine Instances?如何将相同的域名分配给 2 个 App Engine 实例?
【发布时间】:2022-04-14 20:13:49
【问题描述】:

我有多个中小型项目都托管在我当前位于 apps.foo.com 的 Rackspace 服务器下。我想将这些移动到 Google App Engine 实例中,尽​​管我已经设法移动了一些,但我倾向于不断达到 10,000 个文件的限制。

因此,我决定使用 2 个单独的 App Engine 实例,尽管我希望使用相同的域名来指向它们,并使用像 apps.foo.com/m1 和 apps.foo.com/m2 这样的设置,如何才能我这样做?

我已经将域名迁移到一个实例,但我不知道如何添加另一个实例。请帮忙!

【问题讨论】:

  • 顺便说一句,你有多少静态文件?如果它是 10k 的重要部分,您可以将它们移动到 Cloud Storage,无需使用主 gae 应用托管静态文件

标签: google-app-engine domain-name google-cloud-dns


【解决方案1】:

您不能将同一个域映射到 2 个不同的 GAE 应用 - GAE 不知道假设映射到同一个域的 2 个应用中的哪一个来路由该域的传入请求。

域后的请求路径不是域的一部分,它仅在GAE已经根据请求域选择了目标应用程序之后才被解析(遵循目标应用程序的解析规则)。

您可能对我最近对达到部署配额的问答的回复感兴趣:Getting error on GAE: Max number of files and blobs is 10000

【讨论】:

  • 感谢 Dan,我们正在考虑购买付费支持选项。到目前为止,我所有的项目都作为一个模块托管,例如:apps.foo.com/module1 是一个项目,apps.foo.com/module2 是另一个项目。看起来 10,000 个文件的限制是总体的,而不是每个模块的每个版本。此外,当我对文件进行计数时,我的本地目录显示了 6000 个文件,我不确定为什么这甚至会达到 10,000 个限制。 Google Cloud DNS 是否提供在 2 个应用程序之间拆分域名的选项?还是跨 1 个 App Engine 和 1 个计算引擎?
  • 您可以将它们转换为单个应用程序的单独模块,然后您可以将其映射到单个域。见cloud.google.com/appengine/docs/python/modules(其他语言也有类似的文档)
  • 不:同样的问题 - 如果两者具有相同的域,如何决定将请求发送到哪个应用程序或计算引擎?这就像 2 个不同的服务器具有相同的 IP 地址。
  • 使用类似这样的东西:(基于内容的负载平衡?)cloud.google.com/compute/docs/load-balancing/http/…
  • 我也相信它再次使用多个 apengine 的 TOS(否则你可以拥有无​​限的免费配额)
【解决方案2】:

您可以使用 dispatch 将请求重新路由到相关服务。

  1. 将您的 API 和 WebApp 部署到同一个项目,但作为单独的服务(使用 app.yaml 文件中的服务属性)。

  2. 部署调度

dispatch.yaml

  - url: "project-name.appspot.com/api/*"
    service: api-service

  - url: "project-name.appspot.com/*"
    service: web-client-service
  1. 对于我的 WebApp 的 index.html,我还添加了:

<base href="https://project-name.appspot.com/">

【讨论】:

    猜你喜欢
    • 2018-08-12
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 2020-07-15
    • 2021-07-15
    • 1970-01-01
    相关资源
    最近更新 更多