Nginx負載均衡算法

一、Nginx負載均衡算法

    1、輪詢(默認)

        每個請求按時間順序逐一分配到不同的後端服務,如果後端某臺服務器死機,自動剔除故障系統,使用戶訪問不受影響。

    2、weight(輪詢權值)

        weight的值越大分配到的訪問概率越高,主要用於後端每臺服務器性能不均衡的情況下。或者僅僅爲在主從的情況下設置不同的權值,達到合理有效的地利用主機資源。

    3、ip_hash

        每個請求按訪問IP的哈希結果分配,使來自同一個IP的訪客固定訪問一臺後端服務器,並且可以有效解決動態網頁存在的session共享問題。

    4、fair

        比 weight、ip_hash更加智能的負載均衡算法,fair算法可以根據頁面大小和加載時間長短智能地進行負載均衡,也就是根據後端服務器的響應時間 來分配請求,響應時間短的優先分配。Nginx本身不支持fair,如果需要這種調度算法,則必須安裝upstream_fair模塊。

    5、url_hash

        按訪問的URL的哈希結果來分配請求,使每個URL定向到一臺後端服務器,可以進一步提高後端緩存服務器的效率。Nginx本身不支持url_hash,如果需要這種調度算法,則必須安裝Nginx的hash軟件包。


二、Nginx負載均衡調度狀態

  在Nginx upstream模塊中,可以設定每臺後端服務器在負載均衡調度中的狀態,常用的狀態有:

    1、down,表示當前的server暫時不參與負載均衡

    2、backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,纔會請求backup機器,因此這臺機器的訪問壓力最低

    3、max_fails,允許請求失敗的次數,默認爲1,當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤。

    4、fail_timeout,請求失敗超時時間,在經歷了max_fails次失敗後,暫停服務的時間。max_fails和fail_timeout可以一起使用。


三、Nginx負載均衡配置

在Nginx配置文件的HTTP層添加upstream模塊

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
http {
upstream webserver {
    server 192.168.1.209:80 weight=2 max_fails=3 fail_timeout=10s;
    server 192.168.1.250:80 weight=1 max_fails=3 fail_timeout=10s;
}
server {
    listen       80;
    server_name  www.huangming.org 192.168.1.21;
    index index.html index.htm index.php index.jsp;
 
        location / {
        proxy_pass http://webserver;
        proxy_set_header Host   $host;
        proxy_set_header X-Real-IP      $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;
    }
 
}


1
2
3
4
5
6
7
8
[root@www ~]# curl www.huangming.org
web2
[root@www ~]# curl www.huangming.org
web2
[root@www ~]# curl www.huangming.org
web1
[root@www ~]# curl www.huangming.org
web2

上面的例子中的兩臺RealServer分別爲:

        192.168.1.209

        192.168.1.250

兩臺RealServer都安裝Nginx作爲後端web服務器


    Nignx 負載均衡功能是通過upstream模塊實現的,是基於內容和應用的7層交換負載均衡。Nginx負載均衡默認對後端服務器有健康檢測能力,但是檢測能力 較弱,僅限於端口檢測,在後端服務器比較少的情況下(10臺及以下)負載均衡能力表現突出。與LVS負載均衡相比,LVS是基於四層的IP負載均衡技術, 具有高性能、高可用、吞吐量大等優點,LVS在集羣中表現更佳。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章