<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Nginx的負載均衡功能依賴於ngx_http_upsteam_module模組,所支援的代理方式包括proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass和grpc_pass。ngx_http_upstream_module模組有允許Nginx定義一組或多組服務組,使用的可以通過proxy_pass代理方式把網站的請求傳送到事先定義好的對應upstream組的名字上。upstream模組可以實現負載均衡,其實隱含了一個重要功能那就是冗餘,在一個web節點故障的時候,設定了upstream時可以自動切換到正常工作的節點。
排程演演算法一般分為兩類:第一類為靜態排程演演算法,即負載均衡器根據自身設定的規則進行分配,不需要考慮後端節點伺服器的情。第二類為動態排程演演算法,即負載均衡器會根據後端節點的當前狀態來決定是否分發請求。
rr 輪循即round robin 預設排程演演算法,靜態排程演演算法。使用者端請求順序把使用者端的請求逐一分配到不同的後端節點伺服器,這相當於 LVS 中的 rr 演演算法,如果後端節點伺服器宕機(預設情況下nginx 只檢測80埠)。宕機的伺服器會自動從節點伺服器池中剔除,以便使用者端的使用者存取不受影響。新的請求會分配給正產的伺服器。
wrr即weight 權重輪循,靜態排程演演算法。在 rr 輪循演演算法的基礎上加上權重,即為權重輪循演演算法,當使用該演演算法時,權重和使用者存取成正比,權重值越大,被轉發的請求也就越多。可以根據伺服器的設定和效能指定權重值大小,有效解決新舊伺服器效能不均帶來的請求分配問題。
ip_hash是靜態排程演演算法,每個請求按使用者端 IP 的 hash 結果分配,當新的請求到達時,先將其使用者端IP通過雜湊演演算法雜湊出一個值,在隨後的使用者端請求中,客戶 IP 的雜湊值只要相同,就會被分配至同一臺伺服器,該排程演演算法可以解決動態網頁的 session 共用問題,但有時會導致請求分配不均,即無法保證 1:1 的負載均衡,因為在國內大多數公司都是 NAT 上網模式,多個使用者端會對應一個外部 IP,所以,這些使用者端都會被分配到同一節點伺服器,從而導致請求分配不均。LVS 負載均衡的 -P 引數、keepalived 設定裡的 persistence_timeout 50 引數都類似這個 Nginx 裡的 ip_hash 引數,其功能均為解決動態網頁的 session 共用問題。
least_conn是動態排程演演算法,會根據後端節點的連線數來決定分配情況,哪個機器連線數少就分發。
最短響應時間(fair)排程演演算法是動態排程演演算法,會根據後端節點伺服器的響應時間來分配請求,響應時間端的優先分配。這是更加智慧的排程演演算法。此種演演算法可以依據頁面大小和載入時間長短只能地進行負載均衡,也就是根據後端伺服器的響應時間來分配請求,響應時間短的優先分配。Nginx 本身是不支援 fair 排程演演算法的,如果需要使用這種排程演演算法,必須下載 Nginx 的相關模組 upstream_fair。
url_hash演演算法是動態排程演演算法,按存取 URL 的 hash 結果來分配請求,使每個 URL 定向到同一個後端伺服器,可以進一步提高後端快取伺服器的效率命中率。(多用於後端伺服器為快取時的場景下)Nginx 本身是不支援 rul_hash的,如果需要使用這種排程演演算法,必須安裝 Nginx 的hash 模組軟體包。
1、設定範例模板
upstream backend { server backend1.example.com weight=5; #執行realserver,可以賦權重 server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; #backup表示該節點為熱備節點,啟用節點失效時啟用 server backup2.example.com:8080 down; #下線伺服器,可以在real伺服器需要維護時設定 } server { listen 80; #listen、server_name這些正常設定 server_name www.test.com; location / { proxy_pass http://backend; ##反向代理執行定義的upstream名字 } }
2、權重輪詢設定範例
upstream show { server 192.168.0.141 weight=1; server 192.168.0.142 weight=2; }
3、ip_hash設定範例
upstream show { ip_hash; server 192.168.0.141 ; server 192.168.0.142 ; }
4、fair設定範例
upstream show { fair; server 192.168.0.141 ; server 192.168.0.142 ; }
5、least_conn設定範例
upstream show { least_conn; server 192.168.0.141 ; server 192.168.0.142 ; }
6、url_hash設定範例
upstream show { server 192.168.0.141 ; server 192.168.0.142 ; hash $request_uri; hash_method crc32; }
分別在s142主機和s142主機部署2個Tomcat服務,服務存取頁面內容如下:
upstream show { ip_hash ; #使用ip_hash負載均衡排程演演算法 server 192.168.10.141:8080 ; server 192.168.10.142:8080 ; } server { listen 80; #listen、server_name這些正常設定 server_name www.test.com; access_log /var/log/nginx/test.access.log; location / { proxy_pass http://show; ##反向代理執行定義的upstream名字 } }
這是模擬測試,使用測試域名,通過修改hosts檔案(C:WindowsSystem32driversetchosts)實現直接通過域名存取,實際應用需要申請域名並解析。
停止s142的web服務後應用自動切換到了s141節點,其實upstream模組可以作為負載均衡,更重要的是實現冗餘,如果是單機部署的web應用在出現節點故障時服務即無法存取,通過upstream可以實現多節點冗餘。
到此這篇關於Nginx負載均衡之upstream模組簡介與使用的文章就介紹到這了,更多相關Nginx負載均衡upstream模組內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45