亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

由于持久連接,HAProxy 未進行負載平衡

由于持久連接,HAProxy 未進行負載平衡

Go
慕碼人8056858 2021-09-21 16:16:33
我們有一個 web 服務器和一個客戶端,都是用 go 編寫的,它們相互交互。我們希望 HAProxy 在服務器的多個實例之間對請求進行負載平衡,但它不起作用??蛻舳藢⑹冀K連接到同一臺服務器,而它仍在運行。如果我查看“netstat -anp”的輸出,我可以看到客戶端和服務器之間通過 HAProxy 建立了持久連接。我嘗試將響應中的連接頭設置為“關閉”,但這根本不起作用。不用說,我對此完全感到困惑。我的第一個問題是,這是客戶端、服務器還是 HAProxy 的問題?如何強制客戶端斷開連接?我錯過了什么嗎?Curl 工作正常,所以我知道 HAProxy 會進行負載平衡,但是 curl 在完成后也會完全關閉,因此我懷疑是持久連接導致了我的問題,因為客戶端和服務器長時間運行。僅供參考,我在服務器上使用 go-martini。
查看完整描述

1 回答

?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

HTTP/1.1 默認使用 KeepAlive。由于連接沒有關閉,HAProxy 無法平衡不同后端之間的請求。

您有幾個選擇:

在代碼中的每個請求之后強制關閉連接。設置Request.Close = true客戶端或服務器會發送一個Connection: close報頭,告訴雙方關閉TCP連接。

或者,您可以通過設置http-server-close讓HAPoxy 更改請求,以便在每個請求后關閉后端,或者http-close在每個請求后關閉雙方。

http-server-close 通常是最好的選擇,因為它仍然為客戶端維護持久連接,同時單獨代理每個請求。


查看完整回答
反對 回復 2021-09-21
  • 1 回答
  • 0 關注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號