nginx配置實現負載均衡

Nginx可以配置代理多臺服務器,當一臺服務器宕機以後,仍能保持系統可用。node

下面聊下經常使用的一些配置項。nginx

upstream配置:

http配置下增長upstream配置便可:算法

upstream nodes {

    server 192.168.10.1:8668;
    
    server 192.168.10.2:8668;

}

upstream對配置的上游服務器按照默認的輪詢方式進行請求。若是上游服務器掛掉,能本身主動剔除,無需手動干預。這種方式簡單快捷。可是若是上游服務器在配置不均衡的狀況下,是解決不了的。因此nginx有其餘不少的配置項。下面就一一介紹一下。服務器

權重配置:

weight和請求數量成正比,主要用於上游服務器配置不均衡的狀況。下面的配置中,192.168.10.2機器的請求量是192.168.10.1機器請求量的2倍。負載均衡

upstream nodes {

    server 192.168.10.1:8668 weight=5;
    
    server 192.168.10.2:8668 weight=10;

}

ip_hash配置:

每個請求按照請求的ip的hash結果分配。這樣每個請求固定落在一個上游服務器,可以解決ip會話在同一臺服務器的問題。url

upstream nodes {

    ip_hash;
    
    server 192.168.10.1:8668;
    
    server 192.168.10.2:8668;

}

fair配置:

按上游服務器的響應時間來分配請求。響應時間短的優先分配。代理

upstream nodes {

    server 192.168.10.1:8668;
    
    server 192.168.10.2:8668;
    
    fair;
    
}

url_hash配置:

按照訪問的url的hash結果來分配請求,使每個url定向到同一個上游服務器。注意在upstream中加入hash語句。server語句中不能寫入weight等其餘的參數,hash_method是使用的hash算法。code

upstream nodes {

    server 192.168.10.1:8668;
    
    server 192.168.10.2:8668;
    
    hash $request_uri;
    
    hash_method crc32;

}

下面再說下在upstream中經常使用的配置項:server

down:表示當前的server不參與負載均衡。ip

weight:默以爲1,weight越大,負載的權重就越大。

max_fails:請求失敗的次數默以爲1。

fail_timeout: max_fails次失敗後,暫停請求此臺服務器的時間。

backup: 其餘所有的非backup機器down或者忙的時候,請求backup機器。因此這臺機器壓力會最輕。

upstream nodes {

    ip_hash;
    
    server 192.168.10.1:8668 down;
    
    server 192.168.10.2:8668 weight=2;
    
    server 192.168.10.3:8668;
    
    server 192.168.10.4:8668 backup;

}
相關文章
相關標籤/搜索