目前,我们在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一起使用?
答案 0 :(得分:-1)
服务器每个IP地址可以处理65,536个套接字。所以 通过添加额外的网络可以轻松扩展数量 与服务器的接口。同时,追踪是非常重要的 服务器上存在多少个连接。一旦超过限制, 你可以在其他TCP连接上遇到很多问题(例如,不是 可以通过ssh连接到服务器)。所以限制是一个好主意 应用程序代码中每个节点的WS连接。
要使HAProxy处理超过65k的连接,我们应该通过接下来的步骤::
通过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
答案 1 :(得分:-1)
听起来您可以使用新的网络负载均衡器而不是经典的Elastic Load Balancer或应用程序负载均衡器。
NLB可以处理(根据AWS)每秒数百万个请求,并支持长期连接。