Nginx幾種調度算法


我們經常用nginx做反向代理和負載均衡,這里匯總一下nginx的幾種調度算法:

1、輪詢

按時間順序逐一分配到不同的后端服務器。

    upstream lb_demo {
        server 172.16.255.194:9001;
        server 172.16.255.195:9001;
    }

2、加權輪詢

可在配置的server后面加個weight=number,number值越高,分配的概率越大。

upstream lb_demo {
        server 172.16.255.194:9001 weight=10;
        server 172.16.255.195:9001 weight=20;
    }

 

3、ip_hash

每個請求按訪問IP的hash分配,這樣來自同一IP固定訪問一個后台服務器。

upstream lb_demo {
        ip_hash;
        server 172.16.255.194:9001;
        server 172.16.255.195:9001;
    }

 

4、least_hash

最少鏈接數,哪個機器連接數少就發分發給哪個機器。

upstream lb_demo {
        least_conn;
        server 172.16.255.194:9001;
        server 172.16.255.195:9001;
    }

 

5、url_hash

按訪問的url的hash結果分配請求,是每個url定向到同一后端服務器上。

upstream lb_demo {
        url_hash;
        server 172.16.255.194:9001;
        server 172.16.255.195:9001;
    }

 

6、hash關鍵值

hash自定義的key。

注:調度算法在設置upstream中配置,例如在此大括號里面寫入ip_hash表示使用ip_hash的方式分配

輪詢只是簡單實現請求的順序轉發,並沒有考慮不同服務器的性能差異;

加權輪詢設置了初始時服務器的權重,但是沒有考慮運行過程中的服務器狀態;

IP Hash保證同一個客戶端請求轉發到同一個后台服務器實現了session保存,然而當某一后台服務器發生故障時,某些客戶端將訪問失敗;

最少連接數只是考慮了后端服務器的連接數情況,並沒有完全考慮服務器的整體性能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM