the*_*met 13 amazon-web-services amazon-elb
我有网络应用程序N
。每个 web 应用程序由我域中的不同主机名提供服务,并部署到在 AWS 中运行的 2 个实例。换句话说,我有2N
实例,分为运行N
不同 web 应用程序的对。
我想设置一个 AWS Elastic Load Balancer,它将根据Host
标头将请求代理到为其提供服务的两个实例之一。是否可以使用单个 ELB 或者我需要部署N
ELB,每对实例一个?
Mic*_*bot 19
单个 ELB 将流量路由到一组实例,并将传入流量分发到它“后面”的所有实例。它不会根据对流量的任何第 7 层分析(例如Host:
标头)来选择性地路由流量。
你需要一个ELB每个组实例。正如您所描述的,每个 Web 应用程序都有一个 ELB。
如果您运行 ELB 的主要目的是使用通配符证书卸载 SSL(我有一个这样设计的系统,其中有数十个应用程序位于 many-different-domains.my-wildcard-cert-domain.com),那么实例ELB 的“后面”可能运行一个反向代理,比如 HAProxy(或其他几个替代方案,比如 Varnish),它可以做出第 7 层路由决策,然后将流量转发到它们后面的适当机器子集,这也允许更复杂的负载平衡,并具有为您提供统计和流量计数器的优势,聚合和分离。
/-- HAProxy \ /----- instances hosting app #1
ELB ---| >> ----- instances hosting app #2
\-- HAProxy / \----- instances hosting app #n
Run Code Online (Sandbox Code Playgroud)
中间 ^^^^ 实例可以评估Host:
标头(除其他外),甚至可以在其日志中捕获会话 cookie 的值以进行分析。
此设置还允许我在适当的情况下在重叠的实例子集上运行多个应用程序,并执行 ELB 本身不直接支持的许多其他操作。在应用程序过载或以其他方式变得不可用的情况下,它还会返回一个自定义的“503”页面,ELB 不会自行执行此操作。我在这里描述了 2 个代理服务器,除了您提到问题中的数字 2 之外,没有其他特殊原因。我的设置实际上有 3 个,一个用于部署该区域的每个可用区。
归档时间: |
|
查看次数: |
12232 次 |
最近记录: |