Nginx負載均衡

2021-09-26 03:42:59 字數 2844 閱讀 9077

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...