我正在尝试让我的GCE实例侦听多个IP地址(出于搜索引擎优化的原因 - 在同一个实例上托管多个低流量网站)。
最终目标:mydomain.com指向IP1,myotherdomain.es指向IP2,GCE实例将侦听IP1和IP2并相应地提供内容。
我添加了一个指向我的主实例的目标实例,并设法创建了这样的转发规则:
gcloud compute forwarding-rules create another-ip --port 80 --target-instance MY_TARGET_INSTANCE_URL
它实际上创建了一个短暂的IP地址;我试图将它推广到静态但我超过了我的配额(我目前正在进行为期2个月的免费试用)。
这是正确的吗?我可以创建任意数量的静态IP,并在试用期结束后将它们指向我唯一的实例吗?我也找不到关于定价的任何信息:我知道分配给活动实例的IP是免费的,但是其他的呢?
由于这是我正在管理的网站的必要配置,我希望确保它在承诺在GCE上移动所有内容之前有效。
答案 0 :(得分:6)
您可以通过转发规则为一个VM实例获取多个外部IP。
您可能想要使用的命令:
为您的VM实例创建一个TargetInstance:
gcloud compute target-instances create <target-instance-name> --instance <instance-name> --zone=<zone>
创建一个指向TargetInstance的ForwardingRule:
gcloud compute forwarding-rules create <forwarding-rule-name> --target-instance=<target-instance-name> --ip-protocol=TCP --ports=<ports>
答案 1 :(得分:1)
答案 2 :(得分:0)
另一种可能性是在VM上具有多个网络接口
这需要添加一个新的VPC网络,ip 10.130.0.0/20不能在当前基础结构上使用,并且可以用作其他网络,您将添加适当的防火墙规则和适当的路由规则(可以复制默认设置,以避免任何配置错误)
请注意,您不能将网络接口添加到现有计算机,而需要
最后,您需要注意默认网关,经典的网络行为将使所有内容都通过第一个网络接口,直到更改默认网关或创建适当的路由规则,第二个接口才可访问第二个接口。
通常您有eth0和eth1,此示例使eth1可用于绑定到eth1的服务
ip addr add 10.130.0.2/32 broadcast 10.130.0.2 dev eth1
ip link set eth1 up
ip route add 10.130.0.1 src 10.130.0.2 dev eth1
ip route add 10.130.0.1 src 10.130.0.2 dev eth1 table 100
ip route add default via 10.130.0.1 dev eth1 metric 10
ip route add default via 10.130.0.1 dev eth1 table 100
ip rule add from 10.130.0.2/32 table 100
ip rule add to 10.130.0.2/32 table 100
curl --interface eth1 ifconfig.co
curl --interface eth0 ifconfig.co
ping -I eth1 8.8.8.8
Here is文档,或者this guide可能会有帮助。