nginx 設計負載均衡

2021-10-10 13:57:33 字數 1791 閱讀 4194

什麼是負載均衡

當一台伺服器的單位時間內的訪問量越大時,伺服器壓力就越大,大到超過自身承受能力時,伺服器就會崩潰。為了避免伺服器崩潰,讓使用者有更好的體驗,我們通過負載均衡的方式來分擔伺服器壓力。

負載均衡的幾種常用方式

1、輪詢(預設)

每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。

upstream backserver
2、權重(weight)

指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。

upstream backserver
權重越高,在被訪問的概率越大,如上例,分別是30%,70%。

3、上述方式存在乙個問題就是說,在負載均衡系統中,假如使用者在某台伺服器上登入了,那麼該使用者第二次請求的時候,因為我們是負載均衡系統,每次請求都會重新定位到伺服器集群中的某乙個,那麼已經登入某乙個伺服器的使用者再重新定位到另乙個伺服器,其登入資訊將會丟失,這樣顯然是不妥的。

我們可以採用ip_hash指令解決這個問題,如果客戶已經訪問了某個伺服器,當使用者再次訪問時,會將該請求通過雜湊演算法,自動定位到該伺服器。

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題。

upstream backserver
4、fair(第三方)

按後端伺服器的響應時間來分配請求,響應時間短的優先分配。

upstream  dalaoyang-server
5、 least_conn(最少連線)

將請求分配到連線數最少的服務上。

upstream  dalaoyang-server
以兩個tomcat為例:

• nginx 作為負載均衡伺服器,使用者請求先到達 nginx,再由 nginx 根據負載配置將請求**至 tomcat 伺服器

• nginx 負載均衡伺服器:192.168.109.132:80

• tomcat1 伺服器:192.168. 109.132:9090

• tomcat2 伺服器:192.168. 109.132:9091

nginx 配置負載均衡

修改 /usr/local/docker/nginx/conf 目錄下的 nginx.conf 配置檔案:

}}相關配置說明

# 定義負載均衡裝置的 ip及裝置狀態 

upstream myserver

• upstream:每個裝置的狀態:

• down:表示當前的 server 暫時不參與負載

• weight:預設為 1 weight 越大,負載的權重就越大。

• max_fails:允許請求失敗的次數預設為 1 當超過最大次數時,返回 proxy_next_upstream 模組定義的錯誤

• fail_timeout:max_fails 次失敗後,暫停的時間。

• backup:其它所有的非 backup 機器 down 或者忙的時候,請求 backup 機器。所以這台機器壓力會最輕

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