Nginx與HAProxy的區別


對於做軟負載,我們都知道主流的方案有LVS、Haproxy、Nginx!那么對於Haproxy和Nginx,我們如何選擇呢?回答這個問題之前,我根據個人使用經驗來講下它們的特點!

Haproxy特點

  1. 支持TCP與Http協議,工作在網絡4層和7層 
  2. 支持Session共享、Cookies引導 
  3. 支持通過URL健康檢測 
  4. 支持8種負載均衡策略 
  5. 支持心跳檢測

Nginx特點

  1. 支持Http協議,工作在網絡7層 
  2. 支持通過端口健康檢測 
  3. 支持強大的正則匹配規則 
  4. 支持WebSocket協議 
  5. 支持Http Cache

說明:對於Http協議,Haproxy處理效率比Nginx高。所以,沒有特殊要求的時候或者一般場景,建議使用Haproxy來做Http協議負載!但如果是Web,那么建議使用Nginx!總之,大家可以結合各自使用場景的特點來進行合理地選擇!

上次有人問我:Nginx或Haproxy的連接數能否突破“65535”這個“魔咒”?其實大家有這樣的疑問,是因為對Nginx或Haproxy工作原理不了解導致的!

下面以Linux服務器為例,講解下二者理論上最大連接數:

Linux上Nginx理論上最大連接數

正向代理:最大連接數 = work_processes * worker_connections 
反向代理:最大連接數 = work_processes * worker_connections / 4 
備注:worker_connections指單個進程能夠處理的最大連接數,假設你的服務器是8核,worker_connections = 
65535(可以自定義的,但最大不能超過最大文件描述符數,因為1個連接相當於使用了1個文件描述符)

在上述2種情況下最大連接數(理論值)分別是: 8 * 65535 和 8 * 65535 /4

Linux上Haproxy理論上最大連接數

最大連接數 = maxconn( global | defaults | listen )

 

參考:

http://blog.csdn.net/hexieshangwang/article/details/49359259(以上內容轉自此篇文章)

https://www.zhihu.com/question/34489042

http://blog.csdn.net/lushuai93/article/details/50819503


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM