本篇內(nèi)容介紹了“Nginx負載均衡配置實例分析”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)基于分布式IDC數(shù)據(jù)中心構(gòu)建的平臺為眾多戶提供資陽托管服務(wù)器 四川大帶寬租用 成都機柜租用 成都服務(wù)器租用。
【實現(xiàn)功能】
1、配置三臺服務(wù)器
2、分別在三臺服務(wù)器上部署同樣的服務(wù)代碼
3、使用nginx實現(xiàn)負載均衡
【實現(xiàn)思路】
我們的nginx負載均衡器將部署在一臺交互服務(wù)器上,配置與其他兩臺服務(wù)器的連接,所有的請求直接訪問nginx服務(wù)接口,然后nginx負載均衡器將自行選擇真實調(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();是本人擴展的獲取ip地址的方法,具體實現(xiàn)請按自身情況實現(xiàn)。
【系統(tǒng)測試】
我們將三個后臺代碼生成后,分別部署到三個服務(wù)器上。
為了保密服務(wù)器信息,以下我的所有ip地址都將以ip_a,ip_b,ip_c來標識
第三個是我們將要部署nginx的服務(wù)器:
部署好后,我們進行nginx的配置:
下載nginx:
然后解壓到ip_c服務(wù)器,并打開conf文件夾下的nginx.conf
編輯內(nèi)容如下
然后我們啟動服務(wù):
cmd命令切換到nginx的根目錄下
這樣,服務(wù)就算啟動了... 吐槽一句,為什么不提示一句服務(wù)啟動成功呢..欸,不人性化!
然后我們打開任意一個接口測試工具,分別執(zhí)行三次相同的請求:
請求一、
請求二、
請求三、
可以發(fā)現(xiàn),我們每一次的請求,調(diào)用的后臺服務(wù)接口都不是同一個,這樣就保證了在大量客戶訪問同一個服務(wù)器地址時候,可以將一個服務(wù)器的壓力分別分攤到幾個服務(wù)器上,達到了負載均衡的目的。
“Nginx負載均衡配置實例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!