【问题标题】:How to serve a Heroku app with Google cloud fixed IP如何使用谷歌云固定 IP 服务 Heroku 应用
【发布时间】:2019-04-22 12:53:58
【问题描述】:

我有一个 Heroku 应用,它使用 nodejs 提供静态网页 https://foda-app.herokuapp.com

Heroku 不提供固定 IP,我个人项目确实需要一个,所以我尝试使用 Google Cloud 的 VPC 保留的静态外部 IP 地址。

我能够保留 IP,但我不确定如何将其与我的 Heroku 应用程序链接,因为 Google Cloud 提供了如此多的选项和服务。我只想将此 IP 的所有流量重定向到 Heroku 应用程序,但我找不到简单的方法来做到这一点。

我需要创建一个全局转发规则,但如果不使用许多其他服务,我找不到实现此目标的方法。我需要一个虚拟机实例吗?我需要负载均衡器吗?我应该使用 VPC 路由还是 Cloud DNS?我对所有这些服务感到不知所措。

请有人告诉我这是否可能,实现这一目标的最简单方法是什么?

【问题讨论】:

  • 使用谷歌云 DNS 更新 CNAME 和 herokuapp URL
  • 我使用谷歌云 DNS 创建了一个新的 DNS 区域,现在我应该添加一个指向 URL 或 heroku DNS 的新 CNAME 记录吗?我应该使用什么 DNS 名称?
  • 您能否详细说明为什么“个人项目确实需要 [固定 IP]”?根据您的技术需求,您可能无法获得使用 Google Cloud 所获得的效果。
  • 我正在尝试使用握手项目命名空间新域namebase.io/handshake-whitepaper

标签: heroku google-cloud-platform dns ip


【解决方案1】:

您可以使用以下两种方式实现此目的。 -

  1. 在 heroku 上使用第三方插件。例如。 https://devcenter.heroku.com/articles/quotaguardstatic

  2. 在静态 IP 上设置代理服务器,并将所有流量重定向到所需的 Heroku url。

第 2 步的详细信息 -

  1. 将静态外部 IP 地址分配给新的 VM 实例 https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address

  2. 在新采购的虚拟机上安装 Nginx/HAProxy。

  3. 设置配置。如下 -

    upstream heroku-1{ server foda-app.herokuapp.com fail_timeout=15s; } server{ listen 80; server_name yourdomain.example or ip address location / { proxy_pass http://heroku-1; proxy_read_timeout 300; } }

  4. 更改您的域(如果有)的 DNS 映射以指向静态 IP。

【讨论】:

  • 谢谢@mdeora,由于heroku插件不提供免费服务,能否请您详细说明如何在谷歌云静态IP上设置代理服务器?
  • 要设置代理服务器,您需要将一个云实例映射到它的静态IP,并安装任何代理服务器,例如。 Nginx 或 HAProxy 并将您的 heroku 应用程序设置为代理服务器的后端。
  • 我会尝试一下,但在实例上安装代理服务器似乎只是为了重定向流量。如果你用更多细节解释这是如何完成的,我会给你奖励。
  • 您需要调试到底是什么错误。查看错误日志文件/var/log/nginx/error.log
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
相关资源
最近更新 更多