如何使用Google Cloud Compute Engine为Node.JS应用程序配置端口转发

时间:2019-02-19 21:08:24

标签: node.js nginx google-cloud-platform portforwarding google-cloud-networking

我正在尝试为托管在Google Cloud Compute Engine(Ubuntu和Nginx)上的Node.js应用程序配置端口转发(端口80至端口8080)。

我的最终目标是让类似“ api.domain.com”的网址显示与“ api.domain.com:8080”(实际上是:8080)完全相同的内容。

但是因为它是Google平台上的虚拟服务器,所以我不确定我可以进行哪种配置。

我尝试这些解决方案均未成功(可能是因为它是Google Cloud环境):

  1. Forwarding port 80 to 8080 using NGINX
  2. Best practices when running Node.js with port 80 (Ubuntu / Linode)

这里有两个问题:

1。我需要在哪里配置端口转发?

  • 直接在我的带有Nginx或Linux配置文件的Ubuntu实例中吗?
  • 使用gcloud命令吗?
  • 在console.cloud.google.com的用户界面中的秘密位置?

2。我需要保存哪些设置或配置?

2 个答案:

答案 0 :(得分:1)

一种可能性是使用Google Cloud Load Balancer。 https://cloud.google.com/load-balancing/docs/

1)创建一个监听8080端口的后端服务

2)创建一个监听端口80的前端服务

3)然后在此后端服务上转发前端流量

4)奖励:您可以创建由GCP https://cloud.google.com/load-balancing/docs/ssl-certificates#managed-certs自动管理的ssl证书

答案 1 :(得分:0)

为了将来的读者受益,这里是我如何弄清楚如何配置端口转发的方法。

  1. 您需要确保Google Platform上的防火墙配置正确。请遵循此处详细描述的过程:Google Cloud - Configuring Firewall Rules。您需要确保打开端口80(对​​于HTTPS为443)和Node.JS端口(例如我为8080)。

  2. 您将需要直接在服务器上配置端口转发。据我所知,与防火墙规则相反,这不是您可以在Google Cloud Platform UI中进行的配置。就我而言,我需要编辑位于以下位置的Nginx配置文件: / etc / nginx / sites-available / default

  3. 使用以下示例作为参考来编辑您的Nginx配置文件:nginx config for http/https proxy to localhost:3000

  4. 编辑后,您需要使用以下命令重新启动Nginx服务:sudo systemctl restart nginx

  5. 使用以下命令验证Nginx服务的状态:sudo systemctl status nginx

  6. 您的端口应正确重定向到您的Node.js应用程序。

感谢@John Hanley和@howie提供有关Nginx配置的指导。