首頁  >  文章  >  運維  >  nginx和haproxy的差別

nginx和haproxy的差別

(*-*)浩
(*-*)浩原創
2019-06-04 17:07:596216瀏覽

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

nginx和haproxy的差別

Haproxy特點

#支援TCP與Http協議,工作在網路4層和7層 

#支援Session共享、Cookies引導 

支援透過URL健康檢測 

#支援8種負載平衡策略 

支援心跳偵測

#Nginx特點

支援Http協議,工作在網路7層 

支援透過連接埠健康偵測 

支援強大的正規比對規則 

#支援WebSocket協定 

支援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核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核,假設你的伺服器是8核, worker_connections = 
65535(可以自訂的,但最大不能超過最大檔案描述子數,因為1個連接相當於使用了1個檔案描述子)

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

Linux上Haproxy理論上最大連接數

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

更多Nginx相關技術文章,請造訪

Nginx使用教學欄位進行學習!

以上是nginx和haproxy的差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:nginx和lvs區別下一篇:nginx和lvs區別