nginx安裝及負載均衡配置

boye169發表於2024-11-26

下載

http://nginx.org/en/download.html

nginx的負載均衡策略

輪詢(預設)

每個請求按照請求時間順序分配到不同的後端伺服器,如果後端伺服器掛了,則自動剔除。
此策略還可以設定:權重,指定輪詢的頻率,weight和訪問率成正比,用於後端伺服器效能不均勻的情況。

ip_hash

客戶端ip地址被用作hash key來判斷客戶端請求應該傳送到哪個伺服器,這種方法保證了來自相同客戶端的請求總是傳送到相同伺服器。

least_conn

最少連線策略,nginx會盡量不讓負載繁忙的應用伺服器上負載過多的請求,相反的,會把新的請求傳送到比較不繁忙的伺服器。

配置示例如下:

http {
	upstream serverlist{
        ip_hash;
        ##least_conn;
        ## 遮蔽上述兩個引數即採用預設的策略:輪詢
        server www.test1.com weight=3;// 或者ip+埠 , 不需要加入http/https字首
        server www.test2.com weight=2;
        server www.test3.com; // 預設 weight=1
    }
    server {
        listen 80;
        location / {
            proxy_pass http://serverlist;
        }
    }
}

故障下線、備份服務、訪問失敗等配置

1.down
假如有一臺主機是出了故障,或者下線了,要暫時移出,那可以把它標為down,表示請求是會略過這臺主機的。

upstream serverlist{
        server www.test1.com; // 或者ip+埠 , 不需要加入http/https字首
        server www.test2.com down;
}

2.backup
backup是指備份的機器,相對於備份的機器來說,其他的機器就相當於主要伺服器,只要當主要伺服器不可用的時候,才會用到備用伺服器。  

upstream serverlist{
        server www.test1.com; // 或者ip+埠 , 不需要加入http/https字首
        server www.test2.com backup;
}

  

3.max_fails和fail_timeout
預設情況下,max_fails的值為1,表示的是請求失敗的次數,請求1次失敗就換到下臺主機。另外還有一個引數是fail_timeout,表示的是請求失敗的超時時間,在設定的時間內沒有成功,那作為失敗處理。

upstream serverlist{
        server www.test1.com max_fails=2; // 或者ip+埠 , 不需要加入http/https字首
        server www.test2.com backup;
}

  

相關文章