【问题标题】:Forwarding HTTP traffic to a VM instance将 HTTP 流量转发到 VM 实例
【发布时间】:2015-03-28 03:07:15
【问题描述】:

所以我在谷歌应用引擎上部署了一个 Web 服务器作为 VM 实例。它正在运行,我可以通过临时 IP 地址访问它。现在我想将我必须的域名指向那个 VM 实例,我在这里碰壁了。

我添加了一个自定义域,但它注入的 DNS 条目使用外部可见 IP,这与 VM 的临时 IP 不同。

我的问题是,如何将所有请求转发到在 VM 实例中运行的 Web 服务器?

【问题讨论】:

  • 您在 GAE 上部署了 VM 实例?您的意思是“托管虚拟机”吗?
  • 它是“点击部署”软件包之一,它只是为您启动一个预配置的 VM 实例。
  • 如果这是“点击部署”软件包之一,那么您必须在计算引擎上运行,而不是在 appengine 上运行!?

标签: google-app-engine google-compute-engine


【解决方案1】:

为了将所有对您的自定义域的请求发送到在任何 Google Compute Engine 虚拟机实例(包括托管虚拟机)中运行的网络服务器,您需要向您的域所在的名称服务器(NS 或 DNS)添加一些记录正在被送出。

您需要一个 DNS A 记录,它有两部分:前缀(子域)和 IP 地址。

如果您希望将整个域(包括所有子域,即 *.bar.com)转发到您的 VM,您需要指定域本身(取决于您的 DNS 提供商,通常称为 @,或空白字段)作为前缀/子域,后跟 VM 的外部 IP 地址(临时或静态)。

如果您只想将您的子域(即 foo.bar.com)定向到 Web 托管实例,则 A 记录的前缀/子域部分必须包含所述子域。

【讨论】:

  • 是的,对于动态分配的 IP(即临时 IP),我个人发现 support.google.com/domains/answer/6147083?hl=en 很有用——但我确信其他“动态 dns”提供商也不错,我只是没有他们的个人经验。核心思想是帮助您在动态分配的 IP 更改时自动更新 DNS。
  • Sammy,你是对的,我可以做到(这就是我从我的域名注册商那里所做的)。然而,这基本上只是为临时 IP 创建一个 DNS 条目,但我的理解是谷歌应用引擎无论如何都会为您的应用分配一个静态 IP,并且在尝试通过应用引擎本身添加域时(App Engine -> Settings - > 自定义域)我可以获取所有需要的 DNS 条目,但该 IP 显然与我分配给 VM 实例的临时 IP 不同。我确信有一种方法可以将端口转发到 VM 实例,而这正是我正在寻找的。​​span>
  • Alex,DynDNS 对我来说似乎是个 hack,因为 App Engine 上显然有一个直接的域管理和分配给应用程序的静态 IP。在我看来,一种更合适的方法就像将端口转发到 VM 实例,但我对如何做到这一点有点迷茫。
  • @pinkstone - 答案指的是 Google Compute Engine 实例。 App Engine 的情况不同:它使用 Google 的 Web 前端,而不是您的 Compute Engine VM 实例。对于 GAE,您需要向 Google 注册您的自定义域(如您所述,在设置 -> 自定义域下),并将 CNAME / A 记录输入到您域的 DNS 服务器中。
  • 在临时 IP 上 - 理论上,它们可以随时更改。实际上,它们被分配给一个 VM,只要 VM 存在,它们就会一直保持分配状态。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
相关资源
最近更新 更多