什麼是負載均衡
當一台伺服器的單位時間內的訪問量越大時,伺服器壓力就越大,大到超過自身承受能力時,伺服器就會崩潰。為了避免伺服器崩潰,讓使用者有更好的體驗,我們通過負載均衡的方式來分擔伺服器壓力。
負載均衡的幾種常用方式
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...