nginx的負載均衡首先是建立在反向**上的。
我們作為使用者想訪問乙個服務資源 url,如果我們的瀏覽器直接打不開這個 url,一般會通過 vpn 或者其他**伺服器中轉,這種情況下的**就是正向**,也就是我們通常說的**的意思。
而反向**是指,作為服務資源提供方,內部有很多伺服器,這些伺服器不能全部暴露給第三方使用者,因此需要在內部伺服器的前面加乙個**伺服器,使用者訪問的是**服務的 ip,而不知道具體訪問的是服務端的哪台機器,這種情況就是反向**,指的是**服務端。
nginx負載均衡的集中方式:
內建負載策略
1.輪循(預設)
nginx根據請求次數,將每個請求均勻分配到每台伺服器
2.weight (權重)
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的
情況。3.ip hash
繫結處理請求的伺服器。第一次請求時,根據該客戶端的ip算出乙個hash值,將請求分配到集群中的某一台伺服器上。後面該客戶端的所有請求,都將通過hash演算法,找到之前處理這台客戶端請求的伺服器,然後將請求交給它來處理。
第三方負載策略
1.fair
根據伺服器的響應時間來分配請求,響應時間短的優先分配,即負載壓力小的優先會分配。
由於fair模組是第三方提供的,所以在編譯nginx原始碼的時候,需要將fair新增到nginx模組中。
2.url_hash
按請求url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,伺服器做快取時比較有效。
1.7.2版本以後,url_hash模組已經整合到了nginx原始碼當中,不需要單獨安裝。之前的版本仍需要單獨安裝。
測試環境:centos7.3 3台加一台windows server 2008r2,都已安裝nginx,防火牆、selinux均已關閉,其中一台centos用來做**,剩餘3台均為後方伺服器。
1.安裝
nginx -v //檢視nginx版本資訊
nginx -v //檢視nginx編譯資訊
# echo "ip:113" > /usr/local/nginx/html/index.html
# echo "ip:112" > /usr/local/nginx/html/index.html
簡單的覆蓋掉後方幾台機器的歡迎頁用於分辨確認,win的那台我就不改了,ip為192.168.2.106
2.修改**機器的nginx配置檔案
一些注釋行我刪掉了,排版清晰一些,配置檔案每一行都需已分號結尾。
預設為1。某台server允許請求失敗的次數,超過最大次數後,在fail_timeout時間內,新的請求將不會分配給這台機器。如果設定為0,nginx會將這台server置為永久無效狀態,然後將請求發給定義了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令來處理這次錯誤的請求。
預設為10秒。某台server達到max_fails次失敗請求後,在fail_timeout期間內,nginx會認為這台server暫時不可用,不會將請求分配給它
備份機,所有伺服器掛了之後才會生效
埠可以根據實際情況修改;113為備機,等另外兩台都掛了以後才會啟用它;
112的權重比例為3,總計8次出現3次,106為5,8次出現5次;
當112的請求失敗次數超過2次後則20秒內新的請求不會再分配給它。
使用nginx -t測試配置檔案是否有語法錯誤
使用nginx -s reload過載配置檔案
3.測試
用一台其它的機器改個本地解析
因為用了ip_hash,所以訪問一直限制在這台伺服器,那我再修改一下配置檔案
這次用本機瀏覽器測試一下,先配個本地解析,左下角搜尋記事本已管理員身份執行,左上角》檔案》開啟》選擇c:\windows\system32\drivers\etc 這個路徑
找到hosts這個檔案,如果沒有選擇右下角文字文件換成所有檔案
再來訪問
就變成了訪問後方那台windows機器,重新整理幾次
因為使用了權重,那台win的機器使用頻率明顯就會比另外兩台centos高。
參考鏈結
nginx 負載均衡 Nginx負載均衡策略
nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...
nginx負載均衡
nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...
nginx負載均衡
nginx s stop quick exit nginx s quit graceful quit nginx s reload changing configuration,starting a new worker,quitting an old worker gracefully nginx...