【前言】

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

【實(shí)現(xiàn)功能】

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

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

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

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

【實(shí)現(xiàn)思路】

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

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

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

     VisualStudio 2017 

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

     IIS 7.0

【所需技術(shù)】

ASP.NET WebApi2

【實(shí)現(xiàn)過程】

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

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

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

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

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

【系統(tǒng)測(cè)試】

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

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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

 seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

編輯內(nèi)容如下

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

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

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

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

請(qǐng)求一、

 seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

請(qǐng)求二、

seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

請(qǐng)求三、

 seo優(yōu)化培訓(xùn),網(wǎng)絡(luò)推廣培訓(xùn),網(wǎng)絡(luò)營銷培訓(xùn),SEM培訓(xùn),網(wǎng)絡(luò)優(yōu)化,在線營銷培訓(xùn)

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

本文為七小站主原創(chuàng)作品,轉(zhuǎn)載請(qǐng)注明出處:http://www.cnblogs.com/qixiaoyizhan/ 且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責(zé)任的權(quán)利。 

作者信息:

QiXiao_柒小(東)
Microsoft ARD Technical Support
QX(qixiao)Team
天津市西青經(jīng)濟(jì)開發(fā)區(qū) Xiqing Economic Development Area Tianjin 300387,P.R.China
郵箱Email : dong@qixiao.me , wd8622088@foxmail.com
網(wǎng)址Http: http://qixiao.me

http://www.cnblogs.com/qixiaoyizhan/p/7195445.html