什么是直通负载均衡器?它与代理负载均衡器有何不同?
What is pass-through load balancer? How is it different from proxy load balancer?
Google 云网络负载均衡器是直通负载均衡器,而不是代理负载均衡器。 (https://cloud.google.com/compute/docs/load-balancing/network/)。
我在通过LB 上一般找不到任何资源。 HAProxy 和 Nginx 似乎都是代理 LB。我猜想通过 LB 会将客户端直接重定向到服务器。在什么情况下会有用?
除了直通和代理之外,还有其他类型的负载均衡器吗?
很难找到传递负载平衡的资源,因为每个人都想出了不同的调用方式:传递、直接服务器 return(DSR)、直接路由、...
我们在这里称之为直通。
让我试着解释一下:
IP 数据包未经修改地转发到 VM,没有地址或端口转换。
VM认为负载均衡IP是自己的IP之一
在 Compute Engine 网络负载平衡的特定情况下 https://cloud.google.com/compute/docs/load-balancing/:对于 Linux,这是通过在 "local" 路由 table 中添加到此 IP 的路由来完成的, Windows 通过在网络接口上添加辅助 IP。
路由逻辑必须确保 TCP 连接或 UDP "connection" 的数据包始终发送到同一 VM。
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 代理负载平衡 https://cloud.google.com/compute/docs/load-balancing/tcp-ssl/tcp-proxy
HTTP 代理。在 Google Cloud Platform 中,您可以使用 HTTP(s) 负载平衡 https://cloud.google.com/compute/docs/load-balancing/http/
DNS,称为"DNS forwarder"。例如:dnsmasq http://www.thekelleys.org.uk/dnsmasq/doc.html, or bind in "forwarding" mode https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-caching-or-forwarding-dns-server-on-ubuntu-14-04
数据库通信协议。例如 MySQL 协议与 https://github.com/mysql/mysql-proxy
SIP 协议。大量实施列表 https://www.voip-info.org/wiki/view/Open+Source+VOIP+Software#SIPProxies
至于直通相对于其他方法的优势:
如果 IP 数据包上的地址发生变化,某些应用程序将无法运行或需要进行调整,例如 SIP 协议。请参阅维基百科,了解有关不能很好地与 NAT 配合使用的应用程序的更多信息 https://en.wikipedia.org/wiki/Network_address_translation#NAT_and_TCP/UDP。
这里传递的优点是它不会改变源和目标 IP。
请注意,在更高层工作的负载均衡器有一个技巧来保留 IP:负载均衡器在连接到后端时欺骗客户端的 IP。截至撰写本文时,Compute Engine 中还没有负载平衡产品使用此方法。
如果您需要从客户端对 TCP 连接进行更多控制,例如调整 TCP 参数。这是通过 TCP(或更高层)代理的直通或 NAT 的优势。
Google 云网络负载均衡器是直通负载均衡器,而不是代理负载均衡器。 (https://cloud.google.com/compute/docs/load-balancing/network/)。
我在通过LB 上一般找不到任何资源。 HAProxy 和 Nginx 似乎都是代理 LB。我猜想通过 LB 会将客户端直接重定向到服务器。在什么情况下会有用?
除了直通和代理之外,还有其他类型的负载均衡器吗?
很难找到传递负载平衡的资源,因为每个人都想出了不同的调用方式:传递、直接服务器 return(DSR)、直接路由、...
我们在这里称之为直通。
让我试着解释一下:
IP 数据包未经修改地转发到 VM,没有地址或端口转换。
VM认为负载均衡IP是自己的IP之一
在 Compute Engine 网络负载平衡的特定情况下 https://cloud.google.com/compute/docs/load-balancing/:对于 Linux,这是通过在 "local" 路由 table 中添加到此 IP 的路由来完成的, Windows 通过在网络接口上添加辅助 IP。
路由逻辑必须确保 TCP 连接或 UDP "connection" 的数据包始终发送到同一 VM。
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 代理负载平衡 https://cloud.google.com/compute/docs/load-balancing/tcp-ssl/tcp-proxy
HTTP 代理。在 Google Cloud Platform 中,您可以使用 HTTP(s) 负载平衡 https://cloud.google.com/compute/docs/load-balancing/http/
DNS,称为"DNS forwarder"。例如:dnsmasq http://www.thekelleys.org.uk/dnsmasq/doc.html, or bind in "forwarding" mode https://www.digitalocean.com/community/tutorials/how-to-configure-bind-as-a-caching-or-forwarding-dns-server-on-ubuntu-14-04
数据库通信协议。例如 MySQL 协议与 https://github.com/mysql/mysql-proxy
SIP 协议。大量实施列表 https://www.voip-info.org/wiki/view/Open+Source+VOIP+Software#SIPProxies
至于直通相对于其他方法的优势:
如果 IP 数据包上的地址发生变化,某些应用程序将无法运行或需要进行调整,例如 SIP 协议。请参阅维基百科,了解有关不能很好地与 NAT 配合使用的应用程序的更多信息 https://en.wikipedia.org/wiki/Network_address_translation#NAT_and_TCP/UDP。
这里传递的优点是它不会改变源和目标 IP。
请注意,在更高层工作的负载均衡器有一个技巧来保留 IP:负载均衡器在连接到后端时欺骗客户端的 IP。截至撰写本文时,Compute Engine 中还没有负载平衡产品使用此方法。
如果您需要从客户端对 TCP 连接进行更多控制,例如调整 TCP 参数。这是通过 TCP(或更高层)代理的直通或 NAT 的优势。