首頁  >  文章  >  運維  >  nginx負載平衡策略有哪些

nginx負載平衡策略有哪些

(*-*)浩
(*-*)浩原創
2019-07-15 13:40:533702瀏覽

在伺服器叢集中,Nginx扮演一個代理伺服器的角色(即反向代理),為了避免單獨一個伺服器壓力過大,將來自使用者的請求轉送給不同的伺服器。

nginx負載平衡策略有哪些

Nginx負載平衡策略

負載平衡用於從「upstream」模組定義的後端伺服器清單中選取一台伺服器接受使用者的請求。一個最基本的upstream模組是這樣的,模組內的server是伺服器清單:

#动态服务器组
    upstream dynamic_zuoyu {
        server localhost:8080;  #tomcat 7.0
        server localhost:8081;  #tomcat 8.0
        server localhost:8082;  #tomcat 8.5
        server localhost:8083;  #tomcat 9.0
    }

在upstream模組設定完成後,要讓指定的存取反向代理到伺服器清單:

#其他页面反向代理到tomcat容器
        location ~ .*$ {
            index index.jsp index.html;
            proxy_pass http://dynamic_zuoyu;
        }

這就是最基本的負載平衡實例,但這不足以滿足實際需求;

目前Nginx伺服器的upstream模組支援6種方式的分配:

#輪詢的方式,它是upstream模組預設的負載平衡預設策略。每個請求會依時間順序逐一分配到不同的後端伺服器。

權重方式,在輪詢策略的基礎上指定輪詢的幾率。

ip_hash,指定負載平衡器按照基於客戶端IP的分配方式,這個方法確保了相同的客戶端的請求一直發送到相同的伺服器,以保證session會話。這樣每個訪客都固定存取一個後端伺服器,可以解決session不能跨伺服器的問題。

least_conn,把請求轉送給連線數較少的後端伺服器。輪詢演算法是把請求平均的轉送給各個後端,使它們的負載大致相同;但是,有些請求佔用的時間很長,會導致其所在的後端負載較高。在這種情況下,least_conn這種方式就可以達到更好的負載平衡效果。

第三方的負載平衡策略的實作需要安裝第三方外掛程式。

fair,依照伺服器端的回應時間來分配請求,回應時間短的優先分配。

url_hash,按存取url的hash結果來分配請求,使每個url定向到同一個後端伺服器,要配合快取命中來使用。同一個資源多次請求,可能會到達不同的伺服器上,導致不必要的多次下載,快取命中率不高,以及一些資源時間的浪費。而使用url_hash,可以使得同一個url(也就是同一個資源請求)會到達同一台伺服器,一旦快取住了資源,再此收到請求,就可以從快取中讀取。 

更多Nginx相關技術文章,請造訪Nginx使用教學欄位進行學習!

以上是nginx負載平衡策略有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn