Google Cloud Network负载均衡器是直通负载均衡器,而不是代理负载均衡器 . (https://cloud.google.com/compute/docs/load-balancing/network/) .
通过LB时,我找不到任何一般资源 . HAProxy和Nginx似乎都是代理LB . 我猜测通过LB会将客户端直接重定向到服务器 . 在什么情况下它会有益?
除了传递和代理之外还有其他类型的负载均衡器吗?
Google Cloud Network负载均衡器是直通负载均衡器,而不是代理负载均衡器 . (https://cloud.google.com/compute/docs/load-balancing/network/) .
通过LB时,我找不到任何一般资源 . HAProxy和Nginx似乎都是代理LB . 我猜测通过LB会将客户端直接重定向到服务器 . 在什么情况下它会有益?
除了传递和代理之外还有其他类型的负载均衡器吗?
1 回答
很难找到传递负载 balancer 的资源,因为每个人都想出了一种不同的调用方式:传递,直接服务器返回(DSR),直接路由,......
我们在这里称之为传递 .
让我试着解释一下:
IP数据包未经修改转发到VM,没有地址或端口转换 .
VM认为负载均衡器IP是其自己的IP之一 .
在计算引擎网络负载 balancer 的特定情况下https://cloud.google.com/compute/docs/load-balancing/:对于Linux,这是通过在"local"路由表中为此IP添加路由来完成的,通过在网络接口上添加辅助IP .
对于GCE网络LB,请看这里https://cloud.google.com/compute/docs/load-balancing/network/target-pools#sessionaffinity
关于其他负载均衡器类型,不能有明确的列表,这里有几个例子:
NAT . iptables的一个例子是https://tipstricks.itmatrix.eu/use-iptables-to-load-balance-web-trafic/ .
TCP代理 . 在Google Cloud Platform中,您可以使用TCP代理负载 balancer https://cloud.google.com/compute/docs/load-balancing/tcp-ssl/tcp-proxy
HTTP代理 . 在Google Cloud Platform中,您可以使用HTTP(s)负载 balancer https://cloud.google.com/compute/docs/load-balancing/http/
DNS,名为"DNS forwarder" . 例如:dnsmasq http://www.thekelleys.org.uk/dnsmasq/doc.html,或以"forwarding"模式绑定https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-caching-or-forwarding-dns-server-on-ubuntu-14-04
数据库通信协议 . 例如带有https://github.com/mysql/mysql-proxy的MySQL协议
SIP协议 . 这里的大量实施https://www.voip-info.org/wiki/view/Open+Source+VOIP+Software#SIPProxies
至于传递优于其他方法的优点:
这里的优势传递是它不会改变源IP和目标IP .
请注意,在较高层工作的负载均衡器有一个技巧可以保留IP:负载均衡器在连接到后端时会欺骗客户端的IP . 在撰写本文时,没有负载 balancer 产品在计算引擎中使用此方法 .