如何在 AWS 上从 DNS 名称变为 IP:PORT?

How to go from a DNS name to a IP:PORT on AWS?

我正在尝试在单个服务器集群 (DC/OS) 上设置多个不同的网站。这些服务器通过 ELB 进行负载平衡,网站分布在服务器上(每个网站都有自己的端口,在所有服务器上保持相同)。我想做的是:

example.com -> [elb public dns]:8080  
example2.com -> [elb public dns]: 9000

我找到了一种通过多个应用程序 ELB 来执行此操作的方法。我基本上可以在多个不同的 ELB 上监听端口 80,每个 ELB 用于一个特定的网站。然后将这些 ELB 定向到正确的 "target group"。但是,我不确定这是否是一个好的解决方案,因为我需要为多个 ELB 付费,只是为了从 DNS -> IP:PORT 路由我的请求。在 AWS 上有更好的方法吗?

是的,在 DC/OS 中有 Marathon-LB (MLB) 作为 Universe 包提供。 MLB 是一个基于 HAProxy 的负载均衡器,可以完全按照您需要的方式进行配置,请参阅 Marathon-LB docs.

中的 'Virtual hosts' 部分