< 返回新聞公共列表

Nginx如何配置負(fù)載均衡?

發(fā)布時間:2023-03-21 14:50:49

Nginx是最流行的Web服務(wù)器之一,具有非常強(qiáng)大的負(fù)載均衡器選項(xiàng),旨在提高服務(wù)器資源的可用性和效率。在本文中,小編將給大家解釋Nginx如何配置負(fù)載均衡?


一、NGINX安裝

作為第一步,部署這3個服務(wù)器以針對應(yīng)用程序進(jìn)行平衡。在所有這 3臺服務(wù)器上安裝NGINX。

在所有這3臺服務(wù)器上安裝NGINX。

# apt-get 安裝 nginx

在這個階段我們不會部署額外的應(yīng)用程序;我們只會編輯主要的 index.nginx-debian.html文件。在此文件中,使用指定名稱SERVER 1、SERVER 2、SERVER 3保存每個服務(wù)器。

# echo '你好!我的名字服務(wù)器 1' > /var/www/html/index.nginx-debian.html

完畢。安裝了NGINX并派生了服務(wù)器名稱?,F(xiàn)在,當(dāng)在瀏覽器中單擊此鏈接時,我們將能夠看到已為每個服務(wù)器備份NGINX Web服務(wù)器的消息。

讓我們?yōu)槊總€服務(wù)器建立一個IP:10.10.10.1、10.10.10.2和 10.10.10.3。平衡服務(wù)器IP將為10.10.10.99

當(dāng)嘗試對第一臺服務(wù)器進(jìn)行查詢時,我們將得到以下響應(yīng):

#curl http :// 10 . 10 。10 。1 /

我的名字服務(wù)器 1

對其余兩臺服務(wù)器重復(fù)安裝和文本寫入過程。


二、NGINX配置負(fù)載均衡

使用NGINX默認(rèn)設(shè)置安裝所有三臺服務(wù)器后,我們將部署平衡器服務(wù)器。我們還將繼續(xù)安裝 NGINX 服務(wù)器:

# apt-get 安裝 nginx

現(xiàn)在讓我們?yōu)樾碌呐渲梅?wù)器配置服務(wù)器平衡。為了顯示3個以前的服務(wù)器進(jìn)行平衡,讓我們將以下值部署到NGINX配置中:


Nginx如何配置負(fù)載均衡?.png


在此配置中,我們可以看到這三臺先前部署的服務(wù)器處于“上游”服務(wù)器組的配置中。平衡機(jī)制的類型也在“上游”指令中指明。如果不指定,則默認(rèn)采用`round-robin` 。要指定這2個其他機(jī)制,請指定`least_conn`或`ip_hash` 。下面的`balanced`值將被指定為用于平衡的組的標(biāo)題。任何隨機(jī)名稱都足以在以后的配置中用作指向該特定服務(wù)器組的鏈接。

然后,如果我們過渡到,我們將看到 `server` 配置組。在此階段,我們通過端口80的HTTP協(xié)議進(jìn)行操作。為此,必須指定一個將監(jiān)聽`listen 80`網(wǎng)絡(luò)服務(wù)器的端口。然后,必須根據(jù)目錄編寫位置算法。如果指定了location / ,則所有查詢都將由該塊提供服務(wù)。然后,我們可以看到里面的proxy_pass負(fù)責(zé)將查詢代理到第三方服務(wù)器。在此階段,我們指定一個“平衡”服務(wù)器組以及傳輸控制協(xié)議,并將http保留在端口80上。為此,我們將http://放在開頭。

至此,負(fù)載均衡安裝以最簡單的配置完成。讓我們繼續(xù)進(jìn)行測試。

重新啟動我們的Web服務(wù)器以應(yīng)用新配置:

#服務(wù)nginx重啟

為了測試,我們可以向平衡服務(wù)器啟動CURL查詢:


Nginx如何配置負(fù)載均衡?..png


因此,我們可以觀察到10個查詢正在由不同的服務(wù)器處理。每個新請求都已發(fā)送到新服務(wù)器。

例如,如果其中一臺服務(wù)器出現(xiàn)故障怎么辦。例如,讓我們轉(zhuǎn)到服務(wù)器2,然后將其關(guān)閉:#服務(wù)nginx停止

重新查詢時,我們會看到第二臺服務(wù)器被自動忽略了。因此,項(xiàng)目的容錯能力增加了。


Nginx如何配置負(fù)載均衡?...png


顯然,響應(yīng)以循環(huán)模式出現(xiàn),該機(jī)制稱為“round-robin”。對于不同的平衡機(jī)制,一個新的指令將被添加到“upstream”配置組。新指令可以是`ip_hash`或`least_conn`。如果我們設(shè)置`ip_hash`方法,這就是 NGINX配置文件的樣子。


Nginx如何配置負(fù)載均衡?....png


三、額外的負(fù)載均衡配置

我們只會考慮一些通常在負(fù)載平衡設(shè)置中選擇使用的額外配置。這些是可選參數(shù),例如:`weight`、`max_fails`、`fail_timeout`。

上述所有參數(shù)都要在服務(wù)器的上游目錄組中指定。

`weight` 參數(shù)指定服務(wù)器之間的所有查詢平衡。讓我們考慮具有以下配置的服務(wù)器的情況:


Nginx如何配置負(fù)載均衡?.....png


每10個查詢將平衡如下:3個查詢將轉(zhuǎn)到10.10.10.1服務(wù)器,接下來的5個查詢將轉(zhuǎn)到10.10.10.2服務(wù)器,1個查詢將轉(zhuǎn)到10.10.10.3和 10.10.10.4。

`max_fails`和`fail_timeout`參數(shù)是相互關(guān)聯(lián)的。它們確定與斷開連接的服務(wù)器重新建立連接的嘗試次數(shù)。例如,如果`max_fails`參數(shù)設(shè)置為3,并且`fail_timeout` = 60 ,那么如果在60秒內(nèi)服務(wù)器上有3次不成功的處理嘗試,那么在接下來的60秒內(nèi)將不會嘗試發(fā)送查詢到這個服務(wù)器。`fail_timeout`設(shè)置為10 秒,`max_fails`默認(rèn)設(shè)置為1。

以下是使用這些參數(shù)的配置示例:


Nginx如何配置負(fù)載均衡?......png


四、正確的負(fù)載平衡日志記錄配置

如果我們有一個不方便的應(yīng)用程序在多個服務(wù)器上運(yùn)行并配置為平衡。有時需要跟蹤查詢直到接收服務(wù)器。為此,需要準(zhǔn)確記錄平衡。

將NGINX主配置文件/etc/nginx/nginx.conf添加到 `http` 組,并使用新的日志格式:


Nginx如何配置負(fù)載均衡?.......png


然后打開文件/etc/nginx/sites-available/default并添加以下日志記錄值:


Nginx如何配置負(fù)載均衡?........png


然后,保存文件,檢查配置并重新啟動Web服務(wù)器。

# nginx -t && 服務(wù)nginx重啟

如果我們對負(fù)載平衡進(jìn)行4次查詢,在負(fù)載平衡/var/log/nginx/default-access.log日志中,我們將找到以下日志片段:


Nginx如何配置負(fù)載均衡?.........png


五、UTP協(xié)議下DNS服務(wù)器的均衡

如前所述,nginx還可以在傳輸級別執(zhí)行負(fù)載平衡。在此示例中,我們將考慮DNS服務(wù)器的平衡。

我們在這里指定了幾個DNS后端服務(wù)器,然后將nginx配置為通過端口53監(jiān)聽UDP數(shù)據(jù)包。`proxy_pass` 指令將后端發(fā)送到服務(wù)器。Nginx 默認(rèn)期望后端發(fā)送一個或多個響應(yīng)。由于對一個請求會有一個響應(yīng),因此我們配置了proxy_responses 1。

TCP的負(fù)載均衡比較相似:


Nginx如何配置負(fù)載均衡?..........png


以上是Nginx配置負(fù)載均衡相關(guān)步驟,希望能幫助到大家。


/template/Home/Zkeys724/PC/Static