nginx之負載均衡

2021-08-05 22:31:19 字數 1326 閱讀 8492

負載均衡(load balancing)是一種計算機網路技術,用來在多個計算機(計算機集群)、網路連線、cpu、磁碟驅動器或其他資源中分配負載,以達到最佳化資源使用、最大化吞吐率、最小化響應時間、同時避免過載的目的。

使用帶有負載均衡的多個伺服器元件,取代單一的元件,可以通過冗餘提高可靠性。負載均衡服務通常是由專用軟體和硬體來完成。

對於網際網路服務,負載均衡器通常是乙個軟體程式,這個程式偵聽乙個外部埠,網際網路使用者可以通過這個埠來訪問服務,而作為負載均衡器的軟體會將使用者的請求**給後台內網伺服器,內網伺服器將請求的響應返回給負載均衡器,負載均衡器再將響應傳送到使用者,這樣就向網際網路使用者隱藏了內網結構,阻止了使用者直接訪問後台(內網)伺服器,使得伺服器更加安全,可以阻止對核心網路棧和執行在其它埠服務的攻擊。

當所有後台伺服器出現故障時,有些負載均衡器會提供一些特殊的功能來處理這種情況。例如**請求到乙個備用的負載均衡器、顯示一條關於服務中斷的訊息等。負載均衡器使得 it 團隊可以顯著提高容錯能力。它可以自動提供大量的容量以處理任何應用程式流量的增加或減少。

負載均衡在網際網路世界中的作用如此重要,本章我們一起了解一下 nginx 是如何幫我們完成 http 協議負載均衡的。

upstream 負載均衡概要

配置示例,如下:

upstream test.net

server

}

upstream 是 nginx 的 http upstream 模組,這個模組通過乙個簡單的排程演算法來實現客戶端 ip 到後端伺服器的負載均衡。在上面的設定中,通過 upstream 指令指定了乙個負載均衡器的名稱 test.net。這個名稱可以任意指定,在後面需要用到的地方直接呼叫即可。

upstream 支援的負載均衡演算法

nginx 的負載均衡模組目前支援 6 種排程演算法,下面進行分別介紹,其中後兩項屬於第三方排程演算法。

upstream 支援的狀態引數

在 http upstream 模組中,可以通過 server 指令指定後端伺服器的 ip 位址和埠,同時還可以設定每個後端伺服器在負載均衡排程中的狀態。常用的狀態有:

當負載排程演算法為 ip_hash 時,後端伺服器在負載均衡排程中的狀態不能是 backup。

配置 nginx 負載均衡

nginx 配置負載均衡

upstream webservers 

server

}

注,upstream 是定義在server之外的,不能定義在server內部。定義好 upstream 之後,用 proxy_pass 引用一下即可。

nginx之負載均衡

nginx常用來配置成服務的閘道器並通過反向 實現負載均衡。這裡記錄一下有關負載均衡的策略以及相關引數的配置。假設這是乙個基本的反向 配置 upstrean tomcats server 輪訓 輪訓是nginx預設的一種策略,當不進行其他配置時就會執行這種策略。對於上面的基本配置,當訪問www.to...

Nginx之負載均衡

按照網路模型osi nginx負載均衡 配置語法 upstream backend server 機器測試nginx負載均衡 upstream的常見用法 後端伺服器在負載均衡排程中的狀態 1down 當前server暫時不參與負載均衡 1backup 預留的備份伺服器 當正在使用的後端服務異常時,啟...

nginx 之負載均衡

nginx 之負載均衡 以天天鮮配為例 upstream admin server 想要分享如下幾點 做了外網訪問限制 使用了proxy pass 反向 upstream 模組實現了負載均衡 proxy set header host host 請求包含 host 請求頭時為 host 欄位的值,在...