本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
负载均衡一个层
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
AWS OpsWorks Stacks 提供了两个负载平衡选项,即 Elastic L oad Balancing 和 HAProxy
- SSL终止
-
内置HAProxy层不处理SSL终止问题;您必须在服务器SSL上终止。这种方法的好处是,通信内容在抵达服务器之前都是加密的。不过,服务器必须处理解密工作,这会增加服务器负载。此外,您必须将SSL证书放在应用程序服务器上,以便用户更容易访问这些服务器。
使用 Elastic Load Balancing,您可以在负载均衡器SSL处终止。这会减少您应用服务器上的负载,但负载均衡器和服务器之间的通信不会经过加密。Elastic Load SSLBalancing 还允许您在服务器上终止,但设置起来有些复杂。
- 扩展
-
如果传入流量超过HAProxy负载均衡器的容量,则必须手动增加其容量。
Elastic Load Balancing 会自动扩展以处理传入流量。要确保 Elastic Load Balancing 负载均衡器一上线就有足够能力处理预期的负载,您可以对其进行预热
。 - 负载均衡器故障
-
如果托管您的HAProxy服务器的实例出现故障,则可能会使您的整个站点处于离线状态,直到您可以重启该实例。
Elastic Load Balancing 的抗故障能力比HAProxy. 例如,它在每个已注册EC2实例的可用区中配置负载平衡节点。如果在某区的服务中断,其他节点会继续处理输入通信量。有关更多信息,请参阅 Elastic Load Balancing Concepts。
- 空闲超时
-
如果服务器空闲时间超过指定的空闲超时值,这两个负载均衡器都会终止连接。
-
HAProxy— 空闲超时值没有上限。
-
Elastic Load Balancing -空闲超时默认值为 60 秒,最高可达 3600 秒(60 分钟)。
Elastic Load Balancing 空闲时间限制对大多数目的来说是充足的。HAProxy如果您需要更长的空闲超时时间,我们建议您使用。例如:
-
用于推送通知的长时间运行的HTTP连接。
-
管理界面,可用于执行可能需要 60 分钟以上时间的任务。
-
- URL基于映射
-
您可能需要让负载均衡器根据请求将传入的请求转发到特定的服务器URL。例如,假定您有十台应用服务器,这些服务器支持电子商务应用。其中八台服务器处理目录事项,剩余两台处理支付事项。您想根据请求将所有与付款相关的HTTP请求定向到支付服务器。URL在这种情况下,您可以将所有URLs包括 “付款” 或 “结账” 的内容定向到其中一个支付服务器。
使用HAProxy,您可以使用URL基于映射将URLs包含指定字符串的映射定向到特定的服务器。要将URL基于映射与一起使用 AWS OpsWorks 堆栈,您必须通过覆盖
haproxy
内置食谱中的haproxy-default.erb
模板来创建自定义HAProxy配置文件。有关更多信息,请参阅HAProxy配置手册和使用自定义模板。您不能对HTTPS请求使用URL基于映射的映射。HTTPS请求HAProxy已加密,因此无法检查该请求URL。 Elastic Load Balancing 对URL映射的支持有限。有关更多信息,请参阅 Elastic Load Balancing 的侦听器配置。
建议:我们建议使用 Elastic Load Balancing 进行负载平衡,除非您的要求只能由来处理HAProxy。在这种情况下,最好的方法可能是将 Elastic Load Balancing 用作前端负载均衡器,将传入流量分配到一组服务器,从而将两者HAProxy结合起来。要实现此目的,应按照以下步骤进行:
-
在堆栈的每个可用区中设置一个HAProxy实例,将请求分发到该区域的应用程序服务器。
-
将HAProxy实例分配给 Elastic Load Balancing 负载均衡器,然后由该负载均衡器将传入的请求分配给HAProxy负载均衡器。
这种方法允许您使用URL基于HAProxy的映射将不同类型的请求分发到相应的应用程序服务器。但是,如果其中一HAProxy台服务器离线,该站点将继续运行,因为 Elastic Load Balancing 负载均衡器会自动将传入流量分配到运行良好的HAProxy服务器。请注意,您必须使用 Elastic Load Balancing 作为前端负载均衡器;HAProxy服务器无法将请求分发到其他HAProxy服务器。