在 GCP 中,我在具有三个不同端口号(3000、3001 和 3002)的单个实例中运行三个 NodeJS API,并使用 HTTPS 前端创建了一个外部应用程序负载均衡器。我还为这三个端口号创建了一个后端服务。负载均衡器附加到实例组。
如果我请求 URL“https://example.com/”到达端口 3000,这对于我的单后端服务来说效果很好。但我需要传递具有不同 HTTP 标头和值的相同 URL“https://example.com/”。例如,如果我请求 URL“https://example.com/”需要到达端口 3000,但如果我请求带有“mydealsapi”HTTP 标头的相同 URL“https://example.com/”,需要到达端口 3001,同样,如果我请求带有“appapi”HTTP 标头的相同 URL“https://example.com/”,则需要到达端口 3002。
您需要使用 Google Cloud 中的转发规则。这取决于您是否拥有全球或区域负载均衡器。但您可以创建将流量路由到特定端口的转发规则。
以下是有关更多信息的文档:https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#external_fr
您可以通过 GC 控制台创建转发规则,也可以使用 gcloud cli 使用
gcloud compute forwarding-rules create
根据负载均衡器类型,您可以使用“--ports==”标志。
这是一个文档:https://cloud.google.com/sdk/gcloud/reference/compute/forwarding-rules/create
注意:端口规格要求因负载均衡方案和目标而异。有关更多信息,请参阅 https://cloud.google.com/load-balancing/docs/forwarding-rule-concepts#port_specations。