Nginx負載均衡配置實例分析

【實現功能】

1、配置三臺服務器

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

3、使用nginx實現負載均衡

【實現思路】

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

【開發及部署環境】

開發環境:windows 7 x64 sp1 英文版

     visualstudio 2017

部署環境:阿里云 ecs實例 windows server 2012 x64

     iis 7.0

【所需技術】

asp.net webapi2

【實現過程】

使用asp.net webapi2 寫一個簡單地返回json的接口,為了展示我們調用的是不同服務器上的接口,我們以數字形式分別生成三個接口服務,并且分別部署到三臺服務器的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?====="); ?????}

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

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

request.getipaddressfromrequest();是本人擴展的獲取ip地址的方法,具體實現請按自身情況實現。

【系統測試】

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

為了保密服務器信息,以下我的所有ip地址都將以ip_a,ip_b,ip_c來標識

Nginx負載均衡配置實例分析

Nginx負載均衡配置實例分析

第三個是我們將要部署nginx的服務器:

Nginx負載均衡配置實例分析

部署好后,我們進行nginx的配置:

下載nginx:

Nginx負載均衡配置實例分析

然后解壓到ip_c服務器,并打開conf文件夾下的nginx.conf

Nginx負載均衡配置實例分析

編輯內容如下

Nginx負載均衡配置實例分析

然后我們啟動服務:

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

Nginx負載均衡配置實例分析

Nginx負載均衡配置實例分析

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

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

請求一、

Nginx負載均衡配置實例分析

請求二、

Nginx負載均衡配置實例分析

請求三、

Nginx負載均衡配置實例分析

可以發現,我們每一次的請求,調用的后臺服務接口都不是同一個,這樣就保證了在大量客戶訪問同一個服務器地址時候,可以將一個服務器的壓力分別分攤到幾個服務器上,達到了負載均衡的目的。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享