Nginx負載均衡---七層(應用層)

配置實例

upstream  model{
    ip_hash;
    server www.aaa.cn;
    server zb.bbb.cn;
}
server
{
    listen 80;
    #listen [::]:80;
    server_name www.ning.com;
    #root  /home/wwwroot/a;
    #include enable-php.conf;
    location / {
        proxy_pass http://model/;
        proxy_set_header Host $proxy_host;
    }
}

【說明】配置項加載在域名配置文件nginx.conf中

權重分配方式

  • 1.輪詢

每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。

upstream  model{
    server www.aaa.cn;
    server www.bbb.cn;
}
  • 2.weight (加權輪詢)

指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況。 

upstream  model{
    server www.aaa.cn weight=5;
    server www.bbb.cn weight=10;
}

[附加說明]

權重配置時,最好後面服務器的權重>前面服務器的權重,否則後面的服務器分配不均,訪問量少,可能導致訪問不到。

  • 3.ip_hash

每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器。

避免session、文件分片上傳等問題。

upstream  model{
    ip_hash;
    server www.aaa.cn;
    server www.bbb.cn;
}

[附加說明]

同一臺服務器不建議使用ip_hash,沒有作用(真實情況也不會再同一臺服務器進行負載均衡,哈哈😁)。

  • 4.fair[第三方]

fair採用的不是內建負載均衡使用的輪換的均衡算法,而是可以根據頁面大小、加載時間長短智能的進行負載均衡,響應時間短的優先分配。

upstream  model{
    server www.aaa.cn;
    server www.bbb.cn;
    fair;
}

[附加說明]

需要安裝 nginx-upstream-fair 模塊

  • 5.url_hash[第三方]

同一個url(同一個資源請求)會到達同一臺機器,配合緩存命中來使用。服務器集羣,同一個資源多次請求,可能會到達不同的服務器,導致不必要的多次下載,緩存命中率不高,以及一些資源時間的浪費。爲了使得緩存命中率提高,使用url_hash策略,同一個url(也就是同一個資源請求)會到達同一臺機器,一旦緩存資源,再次收到請求,就可以從緩存中讀取,既減少了帶寬,也減少的下載時間。

配置參數

1.down 表示當前的server暫時不參與負載 。
2.weight 默認爲1,weight越大,負載的權重就越大。 
3.max_fails :允許請求失敗的次數默認爲1。
4.fail_timeout:max_fails次失敗後,暫停的時間。 
5.backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。 

 

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