我正在尝试为托管在Google Cloud Compute Engine(Ubuntu和Nginx)上的Node.js应用程序配置端口转发(端口80至端口8080)。
我的最终目标是让类似“ api.domain.com”的网址显示与“ api.domain.com:8080”(实际上是:8080)完全相同的内容。
但是因为它是Google平台上的虚拟服务器,所以我不确定我可以进行哪种配置。
我尝试这些解决方案均未成功(可能是因为它是Google Cloud环境):
这里有两个问题:
1。我需要在哪里配置端口转发?
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)
为了将来的读者受益,这里是我如何弄清楚如何配置端口转发的方法。
您需要确保Google Platform上的防火墙配置正确。请遵循此处详细描述的过程:Google Cloud - Configuring Firewall Rules。您需要确保打开端口80(对于HTTPS为443)和Node.JS端口(例如我为8080)。
您将需要直接在服务器上配置端口转发。据我所知,与防火墙规则相反,这不是您可以在Google Cloud Platform UI中进行的配置。就我而言,我需要编辑位于以下位置的Nginx配置文件: / etc / nginx / sites-available / default 。
使用以下示例作为参考来编辑您的Nginx配置文件:nginx config for http/https proxy to localhost:3000
编辑后,您需要使用以下命令重新启动Nginx服务:sudo systemctl restart nginx
使用以下命令验证Nginx服务的状态:sudo systemctl status nginx
您的端口应正确重定向到您的Node.js应用程序。
感谢@John Hanley和@howie提供有关Nginx配置的指导。