知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
Haproxy 與 Nginx 都能實現負載均衡,那麼 Haproxy 與 Nginx proxy 有什麼差異,我們怎樣選擇兩種方案。
如果是用於 HTTP 負載均衡我建議使用 Nginx,它可以SSL證書掛載,緩存定製,實現各種複雜的需求。而 Haproxy 與 Nginx 相比就沒有那麼靈活。
他們有什麼區別呢?
Haproxy 依賴 inter,rise,fall 三個參數設置監控狀態檢查間隔時間和恢復時間,滿足條件才能剔除壞節點跟加入好節點
Nginx 是通過 max_fails,fail_timeout 參數配置實現節點檢查,原理是timeout。
實際場景有什麼不同?
Haproxy 每隔 inter 時間,統計次數達到 fall 便踢出節點,監控檢查是獨立工作的,如果監控檢查沒有達到fall次數,haproxy 仍會向節點分配請求。一旦fall次數達到節點被踢出,這一時間段請求的用戶集體分配到新節點。
Nginx 則是達到timeout 時間才會踢除,在沒有達到timeout時間值是,nginx 一直處于pending 狀態,Nginx 有個好處就是在timeout 時間內節點恢復了,這些pending用戶還能繼續訪問節點。否則全部分配到新節點。