📅  最后修改于: 2020-11-07 03:00:32             🧑  作者: Mango
什么是负载均衡器?
Load Balancer是一种虚拟机或设备,用于平衡Web应用程序负载(可能是您正在进入的Http或Https流量)。它平衡多个Web服务器的负载,因此不会使Web服务器不堪重负。
应用程序负载均衡器
- 亚马逊网络服务(AWS)于2016年8月11日推出了新的负载均衡器,称为应用程序负载均衡器(ALB)。
- 它用于将用户流量定向到公共AWS云。
- 它识别传入的流量并将其转发到正确的资源。例如,如果URL具有/ API扩展名,则它将被路由到适当的应用程序资源。
- 它在OSI模型的第7层上运行。
- 最适合HTTP和HTTP流量的负载平衡。
- 应用程序负载平衡器是智能的,可以将特定的请求发送到特定的Web服务器。
- 如果我们以TESLA为例。我们拥有TESLA的三个模型,即TESLA Model X,TESLA Model S和TESLA Model 3,并且TESLA都具有机载计算工具。您将拥有一组为Model X服务的Web服务器,一组为Model S服务的Web服务器,以及与Model 3类似的服务。我们有一个负载平衡来检查传入的流量是否来自Model X,ModelS。或Model 3,然后将其发送到预期的服务器组。
网络负载均衡器
- 它在OSI模型的第4层上运行。
- 它在传输层(TCP / SSL)上做出路由决策,并且每秒可以处理数百万个请求。
- 当负载均衡器接收到连接时,它会使用流哈希路由算法从目标组中选择一个目标。它打开到端口的选定目标的TCP连接,并在不修改标头的情况下转发请求。
- 当需要高性能时,它最适合于负载均衡TCP通信。
经典负载均衡器
- 它在OSI模型的第4层上运行。
- 它根据IP地址在客户端和后端服务器之间路由流量。
- 例如,Elastic Load Balancer在TCP端口80上从客户端接收请求,然后将请求路由到后端服务器的指定端口。负载平衡器路由到目标服务器的端口上的端口号为80。后端服务器将把请求的数据发送回ELB,后者再将后端服务器的答复转发给客户端。根据客户端的观点,该请求已由ELB而非后端服务器完成。
- 经典负载均衡器是传统的弹性负载均衡器。
- 它还可以用于负载均衡HTTP或HTTPs流量,并使用第7层特定的功能,例如X转发和粘性会话。
- 您还可以对仅依赖于TCP协议的应用程序使用第4层负载平衡。
负载均衡器错误
如果收到错误504,则这是网关超时错误。负载均衡器仍然可用,但是在与EC2实例进行通信时存在问题。如果您的应用程序停止响应,则ELB(经典负载平衡器)将响应504错误。这意味着该应用程序有问题,并且可能在Web服务器层或数据库层。
为了对应用程序发生故障的地方进行故障排除,并在可能的情况下按比例放大或缩小。
X转发标题
使用经典负载均衡器时,X-Forwarded-For-Header用于确定客户端的IP地址。
X-Forwarded-Header的工作
- 用户在Ipv4地址上,即124.12.3.23。
- 用户正在向经典负载均衡器发送请求,经典负载均衡器又将请求折叠到EC2实例中。 EC2实例将使用专用地址,即10.0.0.23,这是EC2实例看到的唯一地址。
- EC2实例仅捕获专用地址,因为Classis Load Balancer包含公用IP地址。需要公共地址,因为它提供了有价值的信息,例如“谁在使用您的网站”。
- EC2实例从Classic负载均衡器以X-Forwarded-For请求标头的形式获取Ipv4地址。