Nginx因其高性能和可擴展性而廣受歡迎。它是排名第一的開源Web 服務器。在本教程中,我們將學習如何使用Nginx作為應用程序的負載均衡器?
要將nginx負載平衡配置為先決條件,我們需要至少有兩臺主機安裝并配置了Web服務器軟件,才能看到使用nginx進行負載平衡的優勢。如果我們已經設置了一個正在運行的Web主機,則通過創建自定義圖像復制它并將其部署到新的Web服務器上。下面是使用Nginx作為應用程序的負載均衡器分步指南:
一、Nginx網絡服務器
Nginx是一種高性能的開源Web服務器。除了HTTP服務器功能外,NGINX 還可以充當電子郵件(IMAP、POP3 和 SMTP)的代理服務器和反向代理,并為 HTTP、TCP 和 UDP 服務器負載均衡nginx。它提高了應用程序的性能、可靠性和安全性。它以其豐富的功能集、簡單的配置和低資源消耗而廣受歡迎。
Nginx是如何工作的?Nginx通常用作nginx反向代理負載平衡器,作為在多個獨立服務器上工作的分布式Web應用程序的單一入口點。它使用異步、事件驅動的方法來提供低內存使用率和高并發性。
二、負載均衡器
負載平衡是在多個服務器之間分配網絡流量的過程。執行此分發過程的“軟件”或“硬件”稱為負載均衡器。負載均衡器就像站在服務器前面的“交通警察”,并在所有服務器之間路由客戶端請求。它確保即使其中一臺服務器出現故障,我們的應用程序仍能正常運行。
負載均衡器的主要功能如下:
1、跨多個服務器有效地分配客戶端請求或網絡負載;
2、通過僅向在線服務器發送請求來確保高可用性和可靠性;
3、提供根據需求添加或減少服務器的靈活性。
三、將Nginx設置為負載均衡器
在設置Nginx輪詢負載平衡之前,我們應該在服務器上安裝Nginx。我們可以使用apt-get快速安裝它:sudo apt-get install nginx
為了設置循環負載均衡器,我們需要使用Nginx上游模塊。我們會將 nginx負載均衡器配置更新到Nginx設置中。讓我們打開我們網站的配置。為了這個例子,使用默認的配置文件
sudo vi /etc/nginx/sites-available/default
我們需要將負載均衡配置添加到文件中,以使用nginx配置負載均衡器。
首先,我們需要包含用于nginx上游負載平衡的上游模塊,如下所示:
upstream backend {
server backend1.example.com;
server backend2.example.com;
server backend3.example.com;
}
使用此后端上游作為服務器塊中的代理端點:
server {
location / {
proxy_pass http://backend;
}
}
重啟Nginx
sudo service nginx restart
只要所有服務器就位,我們現在應該會發現nginx開源負載均衡器將開始將訪問者平均分配到服務器,這種平均分配稱為循環負載平衡。
四、上游指令
在我們的最后一個例子中,我們使用了一個簡單的上游模塊來進行循環負載平衡,以在服務器之間平均分配流量。然而,這可能不是處理流量的最有效方式的原因有很多。我們可以使用多種指令來更有效地引導網站訪問者。
1、重量
開始更精確地將用戶分配給服務器的一種方法是為某些機器分配特定的權重。Nginx允許我們分配一個數字,指定應定向到每個服務器的流量比例。包含服務器權重的負載平衡設置可能如下所示:
upstream backend {
server backend1.example.com weight=1;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}
默認權重為1。權重為2時,backend2.example將發送兩倍于backend1 的流量,而權重為4的backend3將處理兩倍于backend2和四倍于 backend的流量1.
2、散列
IP哈希允許服務器根據他們的IP地址響應客戶端,每次訪問時將訪問者發送回同一個VPS(除非該服務器已關閉)。如果已知服務器處于非活動狀態,則應將其標記為關閉。所有應該路由到故障服務器的 IP都被定向到備用服務器。下面的配置提供了一個示例:
upstream backend {
ip_hash;
server backend1.example.com;
server backend2.example.com;
server backend3.example.com down;
}
3、最大失敗
根據默認的循環設置,Nginx應用程序負載均衡器將繼續向虛擬專用服務器發送數據,即使服務器沒有響應。Max failure可以通過使無響應的服務器在一定時間內無法運行來自動防止這種情況發生。
有兩個因素與最大失敗有關:max_fails和fall_timeout。最大失敗次數是指在服務器被視為不活動之前應該發生的連接到服務器的最大失敗嘗試次數。Fall_timeout指定服務器被視為不工作的時間長度。一旦時間到期,新的到達服務器的嘗試將再次啟動,默認超時值為10秒。示例配置可能如下所示:
upstream backend {
server backend1.example.com max_fails=3 fail_timeout=15s;
server backend2.example.com weight=2;
server backend3.example.com weight=4;
}
以上是使用Nginx作為應用程序的負載均衡器四個步驟,希望能幫助到大家!
-
nginx
+關注
關注
0文章
154瀏覽量
12235 -
負載均衡器
+關注
關注
0文章
18瀏覽量
2615
發布評論請先 登錄
相關推薦
FilterBank均衡器插件介紹
![FilterBank<b class='flag-5'>均衡器</b>插件介紹](https://file1.elecfans.com/web3/M00/06/60/wKgZO2eJ1HaACDKcAABvcoWGHyA093.png)
評論