當前位置:
首頁 > 知識 > 架構之路 之 Nginx實現負載均衡

架構之路 之 Nginx實現負載均衡

【前言】

在大型網站中,負載均衡是有想當必要的。尤其是在同一時間訪問量比較大的大型網站,例如網上商城,新聞等CMS系統,為了減輕單個伺服器的處理壓力,我們引進了負載均衡這一個概念,將一個伺服器的壓力分攤到幾個伺服器上,一方面減輕了宕機的幾率,另一方面也使得宕機後還要其他伺服器可以繼續穩定運行,提高了系統的健壯性。

【實現功能】

這篇文章將要介紹的主要內容如下:

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中。

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實現負載均衡

架構之路 之 Nginx實現負載均衡

第三個是我們將要部署Nginx的伺服器:

架構之路 之 Nginx實現負載均衡

部署好後,我們進行Nginx的配置:

架構之路 之 Nginx實現負載均衡

然後解壓到ip_C伺服器,並打開conf文件夾下的nginx.conf

架構之路 之 Nginx實現負載均衡

編輯內容如下

架構之路 之 Nginx實現負載均衡

然後我們啟動服務:

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

架構之路 之 Nginx實現負載均衡

架構之路 之 Nginx實現負載均衡

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

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

請求一、

架構之路 之 Nginx實現負載均衡

請求二、

架構之路 之 Nginx實現負載均衡

請求三、

架構之路 之 Nginx實現負載均衡

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

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 科技優家 的精彩文章:

設計模式解密(10)-迭代器模式
阿里巴巴2018屆應屆生在線編程測驗-研發工程師C/C++
Redis 錯誤1067:進程意外終止,Redis不能啟動,Redis啟動不了
ASP.NET Core MVC 過濾器介紹

TAG:科技優家 |

您可能感興趣

Feign實現和負載均衡
網站集群架構實戰(LVS負載均衡Nginx代理緩存Nginx動靜分離等)
nginx 負載均衡
在 Linux 上用 DNS 實現簡單的負載均衡
Linux下Nginx+多Tomcat負載均衡實現詳解
Keepalived+Nginx實現負載均衡高可用
負載均衡zookpeer之輪詢演算法
負載均衡-Ribbon 的負載均衡策略
LVS/DR+keepalived負載均衡實現
Django(Ngnix)項目部署 負載均衡
負載均衡器HAProxy 2.0發布,支持更完善動態配置功能
nginx負載均衡與調度演算法
搭建高可用負載均衡器:haproxy+keepalived
Facebook開源最新網路負載均衡軟體Katran
Portworx與HPE合作為容器工作負載提速
Spring Cloud客戶端負載均衡Ribbon筆記
史上最詳細的Nginx負載均衡教程
ApsaraClouder雲計算專項技能認證超大流量網站的負載均衡考試
Facebook 開源可擴展的網路負載均衡軟體 Katran
Ansible自動部署nginx+keepalived高可用負載均衡