将面向公众的应用程序负载平衡器连接到专用负载平衡器

我正在使用AWS,并尝试将一个巨大的应用程序重新映射到小部分 – 总之:我将单核应用程序转换为基于微服务的应用程序。

所以我想使用一个面向公众的负载均衡器,我可以将一些path路由到其他环境。

例如:

domain.com/service1到Elastic Beanstalk中的另一个负载平衡应用程序

domain.com/service2到Elastic Beanstalk中不同的负载均衡应用程序。

我能够将应用程序负载均衡器连接到另一个EC2实例。 但是我试图没有成功将它连接到由Elastic Beanstalk创build的另一个负载均衡器。

有没有人有如何做到这一点的想法?

ELB和Elastic Beanstalk的function集本身不会支持这个function。

我build议使用HAProxy进行基于path的转发,以将stream量发送到您的Elastic Beanstalk应用程序。 为了实现高可用性,您需要在一对EC2实例上运行这个实例,该实例位于简单的经典ELB之后,并对HAProxy本身运行健康检查。

以下是HAProxy的一个通用示例:

# match incoming request based on path in url acl service1 path_beg /service1 acl service2 path_beg /service2 # send matched request to a specific backend use_backend service1 if service1 use_backend service2 if service2 # define the target backends (Elastic Beanstalk LB DNS, likely) backend service1 :80 option httpchk /haproxy_health_check server service-1 service1.aws.mybeanstalklb.com:80 backend service2 :80 option httpchk /haproxy_health_check server service-2 service2.aws.mybeanstalklb.com:80 

如果您不想在EC2上自行运行此代码,则可以探索将此configuration注入到HAProxy Docker映像,并在EC2 Container Service上运行该容器。