簡體   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