繁体   English   中英

HAProxy上的哪些设置需要与AWS ALB(应用程序负载均衡器)一起使用?

[英]What settings on HAProxy needed to work with AWS ALB (Application Load Balancer)?

目前,我们在mesos-marathon集群中运行了200个容器(几个不同的应用程序)。 这是HAproxy实例的后面部分,适用于HTTP / HTTPS协议。

Internet - > AWS ELB - > HAProxy - > Docker容器

现在我们需要使一个现有的应用程序在WEBSOCKET协议上运行。 我们正在考虑添加新的AWS ALB来实现这一目标。 因此设置将是

        (WebSocket)
Internet --> new AWS ALB --> HAProxy --> Docker containers

        (HTTP/S)
Internet -->  AWS ELB  --> HAProxy --> Docker containers

我们需要做什么设置才能使HAproxy与当前的HTTP / S以及新的WEBSOCKET一起使用?

服务器每个IP地址可以处理65,536个套接字。 因此,通过向服务器添加额外的网络接口可以轻松扩展数量。 同时,跟踪服务器上存在的连接数非常重要。 一旦超出限制,您可能会遇到很多其他TCP连接的问题(例如,无法通过ssh连接到服务器)。 因此,在应用程序代码中限制每个节点的WS连接是个好主意。

要使HAProxy处理超过65k的连接,我们应该通过以下步骤::

  1. 创建一堆私有IP地址。 为此,请选择您的Amazon实例 - >操作 - >网络 - >管理专用IP地址。 我们添加了3个IP地址:192.168.1.1,192.168.1.2,192.168.1.3。 请记住,IP应与您的真实应用程序服务器位于同一子网中。
  2. 通过SSH连接到HAProxy实例并运行以下命令:

    $> ifconfig eth0:1 192.168.1.1

    $> ifconfig eth0:2 192.168.1.2

    $> ifconfig eth0:3 192.168.1.3

这将为实例添加3个虚拟网络接口。

  1. 配置HAProxy。 以下是haproxy.cfg文件中有3个节点接受WS连接的部分:

    听erlang_front:8888

     mode http balance roundrobin timeout connect 1s timeout queue 5s timeout server 3600s option httpclose option forwardfor server xxxxx-1 192.168.0.1:8888 source 192.168.1.1 server xxxxx-2 192.168.0.2:8888 source 192.168.1.2 server xxxxx-3 192.168.0.3:8888 source 192.168.1.3 

现在,HAProxy可以处理超过65,536个WebSocket连接,并且可以通过添加虚拟网络接口轻松增加连接限制。 此外,它可以相当快速地建立新的连接。

另请参阅此博客文章

听起来您可以从使用新的网络负载均衡器而不是经典的Elastic Load Balancer或应用程序负载均衡器中受益。

NLB可以处理(根据AWS)每秒数百万的请求,并支持长期连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM