在大型網站中,負載均衡是有想當必要的。尤爲是在同一時間訪問量比較大的大型網站,例如網上商城,新聞等CMS系統,爲了減輕單個服務器的處理壓力,咱們引進了負載均衡這一個概念,將一個服務器的壓力分攤到幾個服務器上,一方面減輕了宕機的概率,另外一方面也使得宕機後還要其餘服務器能夠繼續穩定運行,提升了系統的健壯性。html
這篇文章將要介紹的主要內容以下:nginx
咱們的Nginx負載均衡器將部署在一臺交互服務器上,配置與其餘兩臺服務器的鏈接,全部的請求直接訪問Nginx服務接口,而後Nginx負載均衡器將自行選擇真實調用的服務器端口。web
開發環境:Windows 7 x64 sp1 英文版json
VisualStudio 2017 windows
部署環境:阿里雲 ECS實例 windows server 2012 x64api
IIS 7.0服務器
使用ASP.NET webapi2 寫一個簡單地返回json的接口,爲了展現咱們調用的是不一樣服務器上的接口,咱們以數字形式分別生成三個接口服務,而且分別部署到三臺服務器的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 }
我部署的三臺服務器後面的數字分別是 111,222,333工具
注:return OK是本人自定義的返回格式,具體簡單代碼能夠直接return Json();測試
Request.GetIpAddressFromRequest();是本人擴展的獲取ip地址的方法,具體實現請按自身狀況實現。
爲了保密服務器信息,如下個人全部ip地址都將以ip_A,ip_B,ip_C來標識
下載Nginx http://nginx.org/en/download.html
cmd命令切換到nginx的根目錄下
這樣,服務就算啓動了... 吐槽一句,爲何不提示一句服務啓動成功呢..欸,不人性化!
請求1、
請求2、
請求3、
能夠發現,咱們每一次的請求,調用的後臺服務接口都不是同一個,這樣就保證了在大量客戶訪問同一個服務器地址時候,能夠將一個服務器的壓力分別分攤到幾個服務器上,達到了負載均衡的目的。