搬移Signalr專案到GCP時得知GCP的LB不支持長連接對象需要ip hash配置,需要自行建立一個LB代理處理,紀錄一下Nginx LB Method
- 簡單的LB配置
1 | user nginx; |
- Round Robin: 請求平均分配(default)
1 | upstream lb-backend { |
- Least Connections: 請求分配到連線數最少的目標
1 | upstream lb-backend { |
- IP Hash: 針對長連結連線類型將IPV4前三個Byte或IPV6計算雜湊確保拜訪目標都為同一台
1 | upstream lb-backend { |
- Generic Hash: 根據指定變數計算雜湊確保拜訪目標都為同一台
1 | upstream lb-backend { |
- Least Time(nginx plus): 根據條件選擇平均延遲最低和連線數最少的對象
- header: 收到回應時間
- last_byte: 收到回應內容時間
- last_byte_infight: 收到完整回應內容時間
1 | upstream lb-backend { |
- Random: 根據nginx權重計算挑出指定數量(one, two, three)機器,並指定方法選擇對象
- least_conn: 最少連線數
- least_time=header(nginx plus): 收到回應平均最少時間
- least_time=last_byte(nginx plus): 收到完整回應平均最少時間
1 | upstream lb-backend { |