溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Nginx負(fù)載均衡(架構(gòu)之路)詳解

發(fā)布時間:2020-09-13 19:19:38 來源:腳本之家 閱讀:129 作者:柒小 欄目:服務(wù)器

在大型網(wǎng)站中,負(fù)載均衡是有想當(dāng)必要的。尤其是在同一時間訪問量比較大的大型網(wǎng)站,例如網(wǎng)上商城,新聞等CMS系統(tǒng),為了減輕單個服務(wù)器的處理壓力,我們引進(jìn)了負(fù)載均衡這一個概念,將一個服務(wù)器的壓力分?jǐn)偟綆讉€服務(wù)器上,一方面減輕了宕機(jī)的幾率,另一方面也使得宕機(jī)后還要其他服務(wù)器可以繼續(xù)穩(wěn)定運(yùn)行,提高了系統(tǒng)的健壯性。

【實現(xiàn)功能】

這篇文章將要介紹的主要內(nèi)容如下:

1、配置三臺服務(wù)器

2、分別在三臺服務(wù)器上部署同樣的服務(wù)代碼

3、使用Nginx實現(xiàn)負(fù)載均衡

【實現(xiàn)思路】

我們的Nginx負(fù)載均衡器將部署在一臺交互服務(wù)器上,配置與其他兩臺服務(wù)器的連接,所有的請求直接訪問Nginx服務(wù)接口,然后Nginx負(fù)載均衡器將自行選擇真實調(diào)用的服務(wù)器端口。

【開發(fā)及部署環(huán)境】

開發(fā)環(huán)境:Windows 7 x64 sp1 英文版

     VisualStudio 2017

部署環(huán)境:阿里云 ECS實例 windows server 2012 x64

     IIS 7.0

【所需技術(shù)】

ASP.NET WebApi2

【實現(xiàn)過程】

使用ASP.NET webapi2 寫一個簡單地返回json的接口,為了展示我們調(diào)用的是不同服務(wù)器上的接口,我們以數(shù)字形式分別生成三個接口服務(wù),并且分別部署到三臺服務(wù)器的iis中。

public IHttpActionResult GetTest()
    {
       //throw new Exception_DG_Internationalization(1001);
       string ip = Request.GetIpAddressFromRequest();
       return OK("Test Api . Client Ip Address is -> "+ip+" The Server is ===== 333 =====");
     }

我部署的三臺服務(wù)器后面的數(shù)字分別是 111,222,333

注:return OK是本人自定義的返回格式,具體簡單代碼可以直接return Json();

Request.GetIpAddressFromRequest();是本人擴(kuò)展的獲取ip地址的方法,具體實現(xiàn)請按自身情況實現(xiàn)。

【系統(tǒng)測試】

我們將三個后臺代碼生成后,分別部署到三個服務(wù)器上。

為了保密服務(wù)器信息,以下我的所有ip地址都將以ip_A,ip_B,ip_C來標(biāo)識

Nginx負(fù)載均衡(架構(gòu)之路)詳解

Nginx負(fù)載均衡(架構(gòu)之路)詳解

第三個是我們將要部署Nginx的服務(wù)器:

Nginx負(fù)載均衡(架構(gòu)之路)詳解

部署好后,我們進(jìn)行Nginx的配置:

下載Nginx:http://nginx.org/en/download.html

Nginx負(fù)載均衡(架構(gòu)之路)詳解

然后解壓到ip_C服務(wù)器,并打開conf文件夾下的nginx.conf

Nginx負(fù)載均衡(架構(gòu)之路)詳解

編輯內(nèi)容如下

Nginx負(fù)載均衡(架構(gòu)之路)詳解

然后我們啟動服務(wù):

cmd命令切換到nginx的根目錄下

Nginx負(fù)載均衡(架構(gòu)之路)詳解

Nginx負(fù)載均衡(架構(gòu)之路)詳解

這樣,服務(wù)就算啟動了... 吐槽一句,為什么不提示一句服務(wù)啟動成功呢..欸,不人性化!

然后我們打開任意一個接口測試工具,分別執(zhí)行三次相同的請求:

請求一、

Nginx負(fù)載均衡(架構(gòu)之路)詳解

請求二、

Nginx負(fù)載均衡(架構(gòu)之路)詳解

請求三、

Nginx負(fù)載均衡(架構(gòu)之路)詳解

可以發(fā)現(xiàn),我們每一次的請求,調(diào)用的后臺服務(wù)接口都不是同一個,這樣就保證了在大量客戶訪問同一個服務(wù)器地址時候,可以將一個服務(wù)器的壓力分別分?jǐn)偟綆讉€服務(wù)器上,達(dá)到了負(fù)載均衡的目的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI