要理解負載均衡,必須先搞清楚正向**和反向**。
正向**與反向**【總結】 注:
當一台伺服器的單位時間內的訪問量越大時,伺服器壓力就越大,大到超過自身承受能力時,伺服器就會崩潰。為了避免伺服器崩潰,讓使用者有更好的體驗,我們通過負載均衡的方式來分擔伺服器壓力。
我們可以建立很多很多伺服器,組成乙個伺服器集群,當使用者訪問**時,先訪問乙個中間伺服器,在讓這個中間伺服器在伺服器集群中選擇乙個壓力較小的伺服器,然後將該訪問請求引入該伺服器。如此以來,使用者的每次訪問,都會保證伺服器集群中的每個伺服器壓力趨於平衡,分擔了伺服器壓力,避免了伺服器崩潰的情況。
負載均衡是用反向**的原理實現的。
1、輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
upstream backserver
2、weight
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的
情況。
upstream backserver
權重越高,在被訪問的概率越大,如上例,分別是30%,70%。
3、上述方式存在乙個問題就是說,在負載均衡系統中,假如使用者在某台伺服器上登入了,那麼該使用者第二次請求的時候,因為我們是負載均衡系統,每次請求都會重新定位到伺服器集群中的某乙個,那麼已經登入某乙個伺服器的使用者再重新定位到另乙個伺服器,其登入資訊將會丟失,這樣顯然是不妥的。
我們可以採用ip_hash指令解決這個問題,如果客戶已經訪問了某個伺服器,當使用者再次訪問時,會將該請求通過雜湊演算法,自動定位到該伺服器。
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。
upstream backserver
4、fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
upstream backserver
5、url_hash(第三方)
按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,後端伺服器為快取時比較有效。
upstream backserver
每個裝置的狀態設定為:
1.down 表示單前的server暫時不參與負載
2.weight 預設為1.weight越大,負載的權重就越大。
3.max_fails
:允許請求失敗的次數預設為1.當超過最大次數時,返回proxy_next_upstream
模組定義的錯誤
4.fail_timeout:max_fails
次失敗後,暫停的時間。
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這台機器壓力會最輕。
配置例項:
nginx windows負載均衡入門
做了幾年開發,都是只管碼 沒有參與過專案的部署,為了知識體系更加完整,於是開始學習一下負載均衡。查了一下資料,覺得用nginx iis 比較簡單,於是小試牛刀。在iis上部署好兩個測試 如下圖,分別把兩個 的埠設定成8091和8092.修改配置 開啟conf資料夾下的nginx.conf檔案 1 在...
負載均衡簡單解釋
負載均衡 load balance 是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求 資料 均勻 分攤到多個操作單元上執行,負載均衡的關鍵在於 均勻 常見網際網路分布式架構如上,分為客戶端層 反向 nginx層 站點層 服務層 資料層。什麼是負載均衡 負載均衡 load balance ...
簡單nginx tomca負載均衡
nginx 是乙個高效能的 web 和反向 伺服器,它具有有很多非常優越的特性 作為 web 伺服器 相比 apache,nginx 使用更少的資源,支援更多的併發連線,體現更高的效率,這點使 nginx 尤其受到虛擬主機提供商的歡迎。能夠支援高達 50,000 個併發連線數的響應,感謝 nginx...