将面向公众的应用程序负载均衡器连接到私有负载均衡器

将面向公众的应用程序负载均衡器连接到私有负载均衡器

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

所以我想使用面向公众的负载均衡器,这样我就可以把一些路径路由到其他环境。

例如:

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

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

我能够将应用程序负载均衡器连接到另一个 EC2 实例。但我尝试将其连接到 Elastic Beanstalk 创建的另一个负载均衡器,但没有成功。

有人知道如何实现这一目标吗?

答案1

您不会在 ELB 和 Elastic Beanstalk 的功能集中找到对此的本机支持。

我建议使用 HAProxy 进行基于路径的转发,将流量发送到您的 Elastic Beanstalk 应用程序。为了实现高可用性,您需要在位于简单 Classic ELB 后面的一对 EC2 实例上运行此功能,并对 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 上自行运行此程序,你可以尝试将此配置注入 HAProxy docker 镜像并在EC2 容器服务

相关内容