我的问题是关于计算引擎上的 http/s 负载平衡:
如果我在计算引擎中加载了一个实例,其区域设置为 europe-west3-a,那么默认情况下谷歌云已经具有预设的负载平衡,对吗?
因此,仅当我想要定制负载平衡时,我才会去配置负载平衡,对吗?
这不是自动缩放吗?
我的第二个问题是关于谷歌云上的 CDN。要在计算引擎中拥有 cdn,需要设置负载平衡,但如果不设置负载平衡来获得 cdn 的好处,而是在实例区域上设置多区域,会得到相同的结果吗?如果不是,那么带负载平衡的 cdn 和多区域之间有什么区别?
提前感谢您帮助我理解。
答案1
Google Compute Engine 有两种完全不同的负载平衡方法。分别是网络负载平衡和 HTTP(S) 负载平衡。
网络负载平衡是区域性的,可以在同一区域内的多台虚拟机之间对任何基于 TCP 或 UDP 的协议进行负载平衡。仅由一台虚拟机支持的网络负载平衡器是可行的,但其行为方式几乎与为该虚拟机分配外部 IP 地址相同。
因此,除非您打算扩展到多个 VM,否则没有太多理由使用网络负载平衡器。但是,如果您想要获得良好的可用性,则不建议仅使用单个 VM。而是使用不同区域中的 VM 并在它们之间进行负载平衡。
负载平衡的另一种方法是 HTTP(S) 负载平衡。HTTP(S) 负载平衡允许您使用一对 IPv4 和 IPv6 地址来寻址您的网站。然后,Google 运营的 HTTP(s) 代理将在多个区域(优先考虑附近的区域)之间的虚拟机之间对流量进行负载平衡。
X-Forwarded-For
使用 HTTP(S) 负载平衡时,客户端与代理之间使用一个 TCP 连接,代理与虚拟机之间使用另一个 TCP 连接。因此,如果您想知道客户端的 IP 地址,则需要使用标头。