目錄
一、LVS轉發模式
二、nginx負載模式
四、總結
首頁 後端開發 php教程 lvs、nginx、haproxy中轉模式總結

lvs、nginx、haproxy中轉模式總結

Aug 08, 2016 am 09:21 AM
hash nbsp nginx server

lvs、nginx、haproxy是最常見的三種高可用性負載平衡軟體。由於lvs和haproxy在目前的公司的現網環境中並未用到,雖然之前簡單的了解和搭建過,現在也已經忘的差不多了,而及於nginx的負載平衡雖然公司在用,不過一配置文件都是ctrl+c、ctrl+v,對轉發的理論性的東西也都忘的差不多了。隱約腦中現在只有upstream、dr 、ip_hash這幾個字了。現對三者的轉發方式做下總結。

一、LVS轉發模式

LVS是章文嵩博士寫的一個工作於四層的高可能性軟體。不像後兩者支援七層轉發,不過也因為其簡單,所以其是最穩定的。其共有三種IP負載平衡技術:VS/NAT(Virtual Server via Network Address Translation)、VS/TUN(Virtual Server via IP Tunneling)和VS/DR(Direct Routing),三者之間的具體比較請見下表

lvs、nginx、haproxy中轉模式總結

二、nginx負載模式

nginx有五種負載演算法模式,分別是:輪詢、weight(權重)、ip_hash、fair、url_hash 。現逐一說明:

  1. 輪詢(預設): 每個請求依時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
  2. weight :指定輪詢幾率,weight和存取比率成正比,用於後端伺服器效能不均的情況。配置為:
    1. upstream bakend {
    2. server 192.168.0.192.1681 ;server 192.168
    3. .
    4. 0.15 weight=10;}
    5. ip_hash:每個請求按訪問配置為:
    6. upstream bakend 
  3. {
    1. ip_hash;
    2. server. :88
    3. ;
    4. server 192.168. 0.15:80
    5. ;
    6. }fair請求 upstream backend {
    7. server server1
    8. ;
    1. }
    2. url_hash:按訪問url的hash結果來分配請求,使每個url定向到同一個後端伺服器,後端伺服器為快取時比較有效。配置如: upstream backend 
    3. {
    4. server squid1
    5. :
    6. 3128 8;
    7. hash $request_uri
    ;
    1. hash_method crc32;
    2. }注:第五種模式下,需要注意關於methodfoded的hash演算法。 server後面常接的參數有以下幾個:
    3. down 表示單前的server暫時不參與負載 weight 預設為1.weight越大,負載的權重越大。 
    4. max_fails :允許請求失敗的次數預設為1.超過最大次數時,返回proxy_next_upstream 模組定義的錯誤 fail_timeout:max_fails次失敗後,暫停的時間。 
    5. backup: 其它所有的非backup機器down或忙碌的時候,請求backup機器。所以這台機器壓力會最輕。
    6. 三、haproxyhaproxy是三者之間負載演算法最多的,有八種,因此其應用場景也是最多,配置也是最靈活的,具體8種演算法為:
  4. ①roundrobin,表示簡單的輪詢,這個是負載平衡基本上都具備的; 

②static-rr,表示根據權重,和nginx的weight演算法類似; 

③leastconn,表示最少連接者先處理,有點類似於nginx的fair,不過fair是根據回應時間; 

    ④source,表示根據請求來源IP,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法,建議關注; 
  • ⑤ri,表示根據請求的URI,類似於nginx的url_hash; 
  • ⑥rl_param,表示根據請求的URl參數'balance url_param' requires an URL parameter name; 
  • ⑦hdr(name),表示根據HTTP請求頭來鎖定每一次

    ⑧rdp-cookie(name),表示根據據cookie(name)來鎖定並哈希每一次TCP請求。

    四、總結

    具體現網應用可以根據據體的實際情況選擇最好的負載方式。三者中,lvs穩定性最好,可配置性最少;nginx針對域名、目錄結構進行正則匹配是最強的,同時其對網絡依賴比較小,不過性能上和lvs和haproxy相比稍差一點點;haproxy支援虛擬主機,尤其在session保持方面做的最好,其有三種演算法可以實現session共享-—— ip辨識(source)、cookie辨識、session辨識三種,除此之外在對mysql做HA方案時也常會用到該軟體。

    以上就介紹了lvs、nginx、haproxy中轉模式總結,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

linux怎麼啟動nginx linux怎麼啟動nginx Apr 14, 2025 pm 12:51 PM

在 Linux 中啟動 Nginx 的步驟:檢查 Nginx 是否已安裝。使用 systemctl start nginx 啟動 Nginx 服務。使用 systemctl enable nginx 啟用在系統啟動時自動啟動 Nginx。使用 systemctl status nginx 驗證啟動是否成功。在 Web 瀏覽器中訪問 http://localhost 查看默認歡迎頁面。

nginx403錯誤怎麼解決 nginx403錯誤怎麼解決 Apr 14, 2025 pm 12:54 PM

服務器無權訪問所請求的資源,導致 nginx 403 錯誤。解決方法包括:檢查文件權限。檢查 .htaccess 配置。檢查 nginx 配置。配置 SELinux 權限。檢查防火牆規則。排除其他原因,如瀏覽器問題、服務器故障或其他可能的錯誤。

nginx怎麼啟動 nginx怎麼啟動 Apr 14, 2025 pm 01:06 PM

問題:如何啟動 Nginx?答案:安裝 Nginx啟動 Nginx驗證 Nginx 是否已啟動探索其他啟動選項自動啟動 Nginx

nginx怎麼關閉 nginx怎麼關閉 Apr 14, 2025 pm 01:00 PM

要關閉 Nginx 服務,請按以下步驟操作:確定安裝類型:Red Hat/CentOS(systemctl status nginx)或 Debian/Ubuntu(service nginx status)停止服務:Red Hat/CentOS(systemctl stop nginx)或 Debian/Ubuntu(service nginx stop)禁用自動啟動(可選):Red Hat/CentOS(systemctl disable nginx)或 Debian/Ubuntu(syst

nginx怎麼查看運行狀態 nginx怎麼查看運行狀態 Apr 14, 2025 am 11:48 AM

查看 Nginx 運行狀態的方法有:使用 ps 命令查看進程狀態;查看 Nginx 配置文件 /etc/nginx/nginx.conf;使用 Nginx 狀態模塊啟用狀態端點;使用 Prometheus、Zabbix 或 Nagios 等監控工具。

nginx在windows中怎麼配置 nginx在windows中怎麼配置 Apr 14, 2025 pm 12:57 PM

如何在 Windows 中配置 Nginx?安裝 Nginx 並創建虛擬主機配置。修改主配置文件並包含虛擬主機配置。啟動或重新加載 Nginx。測試配置並查看網站。選擇性啟用 SSL 並配置 SSL 證書。選擇性設置防火牆允許 80 和 443 端口流量。

nginx如何配置負載均衡 nginx如何配置負載均衡 Apr 14, 2025 am 08:33 AM

如何配置 Nginx 進行負載均衡?定義上游服務器池,指定服務器 IP 和端口。定義虛擬主機,監聽連接並轉發到上游池。指定位置,匹配請求並轉發到上游池。

nginx304錯誤怎麼解決 nginx304錯誤怎麼解決 Apr 14, 2025 pm 12:45 PM

問題的答案:304 Not Modified 錯誤表示瀏覽器已緩存客戶端請求的最新資源版本。解決方案:1. 清除瀏覽器緩存;2. 禁用瀏覽器緩存;3. 配置 Nginx 允許客戶端緩存;4. 檢查文件權限;5. 檢查文件哈希;6. 禁用 CDN 或反向代理緩存;7. 重啟 Nginx。

See all articles