Haproxy
使用備份伺服器的 haproxy http 檢查在主伺服器關閉時顯示 503
我一直在嘗試使用 haproxy 設置轉發。
listen POC-2019-02-03 bind 0.0.0.0:8083 timeout connect 14000 timeout client 180000 timeout server 180000 mode http option forwardfor http-request set-header X-Forwarded-Port %[dst_port] http-request add-header X-Forwarded-Proto https if { ssl_fc } option httpclose option httpchk GET / HTTP/1.1 http-check expect rstring "Welcome" server S-ONE 127.0.0.1:6001 check server S-TWO 127.0.0.1:6002 check backup
當請求http://127.0.0.1:8083時,通常會如下服務:
- 顯示S-ONE的內容
- 但是當像正常生產場景一樣請求多個請求時,只要我拒絕 S-ONE,它就會顯示
503服務不可用
沒有可用於處理此請求的伺服器。
然後通過S-TWO提供第二個請求
- 然後它連續由S-TWO服務。之後我確實啟動了S-ONE並且顯然請求仍然來自S-TWO,這對我來說沒問題。
- 我拒絕了S-TWO然後沒有顯示任何錯誤,它由S-ONE服務,這很酷。但在這種情況下,我沒有得到相反的結果。
我有什麼需要在這裡調整的嗎?
跌倒 <計數>
“fall” 參數表示伺服器在連續不成功的健康檢查後將被視為死亡。如果未指定,此值預設為 3。另見“check”、“inter”和“rise”參數。
間 <延遲>
“inter”參數將兩次連續健康檢查之間的間隔設置為毫秒。如果未指定,則延遲預設為 2000 毫秒。
我從未嘗試過這種確切的場景,但我懷疑在它實際將主機標記為關閉(從而啟動備份)之前,它沒有其他地方可以將流量路由到,所以繼續將它發送到 {{s-ONE }} 直到它正式“關閉”。