Nginx功能-負載均衡

 Nginx負載均衡

        當你的網站訪問量越來越大,單臺服務器已經不能滿足你的要求,這個時候就出現了集羣,如何將請求均衡分擔到多臺服務器,從而保證不會導致有些機器太忙,有些機器又太空閒,從而最大程度地提高服務器性能。Nginx的反向代理就可以爲我們做到這些。

負載均衡算法

1、輪詢算法(round-bin)

        將請求按順序輪流地分配到後端服務器上,它均衡地對待後端服務器,而不關心後端服務器實際的連接數和負載量。默認使用這個配置。

http {
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}

2、加權輪詢

       不同的後端服務器可能機器的配置和當前系統的負載並不相同,因此它們的抗壓能力也不相同。給配置高、負載低的機器配置更高的權重,讓其處理更多的請;而配置低、負載高的機器,給其分配較低的權重,降低其系統負載,加權輪詢能很好地處理這一問題,並將請求順序且按照權重分配到後端。

 upstream myapp1 {
        server srv1.example.com weight=3;
        server srv2.example.com;
        server srv3.example.com;
    }

如上配置,如果有5個請求到服務器,則有3個請求會被分配到服務器1,其他2個請求被分配到2和3服務器。

3、最小連接數(least_conn)

將請求分配到連接數最小的服務器。

upstream myapp1 {
        least_conn;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

4、哈希算法(ip_hash)

基於客戶機的IP地址根據散列算法將請求分配到後端服務器。此算法能保證具體的Ip總是被分配到具體的服務器,除非該臺服務器宕機了。

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章