我的目标是
- 在 Google 云上的 Windows 服务器实例上配置的 IIS 上托管多个网站/应用程序。
- 让每个网站使用已预留的附加单独静态 IPS
- 根据 IP 地址将请求路由到相应的应用程序
我做了什么
- 在 Google Cloud 上创建了 Windows Server 2012 实例
- 为实例附加了一个静态 IP,目前有一个网站指向该静态 IP
- 保留额外的静态 IP 并尝试连接到现有实例
挑战
Google Cloud 不允许我将 IP 附加到已有 IP 的现有实例(这很公平)。因此,我认为创建多个网络接口并为它们附加单独的 IP 是有意义的。但是 Google Cloud 文档说:
- 您只能在创建实例时配置网络接口 - 我真的没有能力重新创建这个实例。
- 您不能将多个网络接口连接到同一个 VPC 网络。- 我不需要多个 VPC 网络。我尝试使用 IIS 作为 Web 服务器,托管多个应用程序,每个应用程序都可以通过自己的 IP 访问。
我也尝试了 IP 转发规则,但事实证明它只能在创建时切换,并且由于我有一个正在运行的实例并且 IP 转发已关闭,所以我必须重新创建该实例以满足我的需求。
我有出路吗?我该怎么办?
答案1
我认为您混淆Google IP Forwarding
了Google Protocol Forwarding
。
IP 转发用于 VPN、NAT 网关等。IP 转发将流量通过实例路由到其他地方。此功能可禁用在评估 IP 流量时通常会进行的源/目标检查,以便 VM 实例上的网络接口可以通过实例路由流量。
对于您的使用情况(一个 VM 实例的多个 IP 地址),您可以使用 Google 协议转发(在此答案中简称为 GPF)。
GPF 用于创建流量转发规则,支持多个公共 IP 地址。本质上,GPF 是一个负载均衡器,其 IP 地址与转发规则绑定。您可以配置 Apache、IIS 等服务以使用与转发规则绑定的公共 IP 地址。
注意:Google Cloud Console(目前)不支持创建 GPF。您必须使用 API 或gcloud
。
总之,创建一个target-instance
。然后将规则绑定到此target-instance
。这target-instance
不是您将在 Google 控制台中看到的普通 VM 实例。
协议转发的收费标准与负载平衡服务相同。如果您的目标是低成本解决方案,请记住这一点。Google 负载均衡器定价。
有关 Google 协议转发的这份文档将帮助您了解如何实现此功能。