【實作功能】
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
#【實作過程】使用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 =====");
}
註:return ok是自己自訂的回傳格式,具體簡單程式碼可以直接return json() ;
request.getipaddressfromrequest();是本人擴展的獲取ip位址的方法,具體實作請按自身情況實作。
【系統測試】
我們將三個後台程式碼產生後,分別部署到三個伺服器上。
為了保密伺服器訊息,以下我的所有ip位址都將以ip_a,ip_b,ip_c來識別
第三個是我們將要部署nginx的伺服器: 部署好後,我們進行nginx的設定:下載nginx:
然後解壓縮到ip_c伺服器,並開啟conf資料夾下的nginx.conf
##編輯內容如下
然後我們啟動服務:
cmd指令切換到nginx的根目錄下##這樣,服務就算啟動了... 吐槽一句,為什麼不提示一句服務啟動成功呢..欸,不人性化!
然後我們開啟任一介面測試工具,分別執行三次相同的請求:
請求一、
請求二、
請求三、
###############可以發現,我們每一次的請求,呼叫的後台服務介面都不是同一個,這樣就保證了在大量客戶訪問同一個伺服器位址時候,可以將一個伺服器的壓力分別分攤到幾個伺服器上,達到了負載均衡的目的。 ###以上是Nginx負載平衡設定實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!