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

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

互联网 – > 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一起使用?

最佳答案

The server can handle 65,536 sockets per single IP address. So the
quantity can be easily extended by adding additional network
interfaces to a server. Meanwhile, it’s extremely important to track
how many connections present on a server. Once the limit is exceeded,
you can have a lot of issues with other TCP connections (e.g. it’s not
possible to connect to a server via ssh). So it’s a good idea to limit
WS connections per node inside your application’s code.

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

>创建一堆私有IP地址.要做到这一点选择你的亚马逊
实例 – >行动 – >网络 – >管理私有IP地址.我们
添加了3个IP地址:192.168.1.1,192.168.1.2,192.168.1.3.只是
请记住,IP应该与您的真实网络位于同一个子网络中
应用服务器.
>通过SSH连接到HAProxy实例并运行以下命令:

$> ifconfig eth0:1 192.168.1.1

$> ifconfig eth0:2 192.168.1.2

$> ifconfig eth0:3 192.168.1.3

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

>配置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连接,并且可以通过添加虚拟网络接口轻松增加连接限制.此外,它可以相当快速地建立新的连接.

另请参阅this Blog Post

转载注明原文:amazon-web-services – HAProxy上的哪些设置需要与AWS ALB(应用程序负载均衡器)一起使用? - 代码日志