分布式,叢集,雲計算機、大資料、負載均衡、高并發······當耳邊響起這些詞時,做為一個菜鳥程式猿無疑心中會激動一番(或許這是判斷是否是一個标準阿猿的标準吧)!
首先自己從宏觀把控一下,通過上網科普自己遇到問題,然後再站在這些巨人的肩膀上解決問題。
問題:在大型WEB應用程系統中,由于請求的數量過大及并發的因素,導緻Web系統會出現當機的現象!
解決方案主要有以下幾個方面:
- IIS負載均衡。
- 資料庫負載均衡。
- 系統架構優化,比如:報表伺服器和應用伺服器的分離等。
接下來就是研究與解決,很簡單首先撿個軟柿子捏,根據常識以及方案排序,決定拿IIS來開刀。
兩張圖了解其中的業務流程
首先上網查資料nginx相關原理,文字性描述感覺很無聊,于是自己總結兩張對比圖,如下:
1、一般情況下(未使用nginx伺服器流程):

2、使用nginx伺服器後流程【注:本圖以一級nginx伺服器為例】:
根據這兩張圖對比,不難得出以下結論:
利用nginx管理起IIS伺服器後:
- 可靠性大大增強:一台或多台IIS伺服器當機,服務不中斷!細心的讀者發現如果nginx伺服器當機那?當然可以通過配置多個及多級nginx伺服器來解決。
- 處理大通路量時大大減小IIS伺服器壓力,提高通路速度。
- 消耗硬體資源多:多增加一台伺服器(在資料量不大的時候nginx也可與IIS共用一台伺服器)與N台IIS伺服器!不過在硬體成本不斷降低以及高可靠性的今天,對于大通路量網站,這個影響幾乎可以忽略不計。要不然也不會有這麼多的使用者比如國内的使用者:百度,新浪,網易,騰訊等。
了解了nginx的邏輯後我們着手部署一個環境實戰一下。
實戰部署叢集實作指派均衡
【準備工作】
- 安裝一款文本編輯器(這裡以Notepad++為例,使用記事本打開檔案有時會是亂碼)
- 下載下傳Nginx(這裡以Nginx-1.4.7為例,其他版本操作相同,下載下傳位址:http://nginx.org/en/download.html)
- 建兩個簡單網頁:使用vs建立四個簡單的web項目)
- 将上面建兩個網頁分别釋出在IIS上不同端口号,并測試釋出成功(IISNgNix1項目端口為8001,IISNgNix2項目端口為8002,IISNgNix3項目端口為8003,IISNgNix4項目端口為8004)
【配置Nginx】
使用文本編輯器編輯Nginx配置檔案(到你解壓的相對路徑下面的conf檔案夾下面的nginx.conf檔案編輯)
進入修改主要修改四個地方,如圖一一标注出來了(溫馨提示:不要用記事本打開修改否則可能會亂碼)
使用Dos指令進入Nginx檔案夾并啟動Nginx(這裡以将Nginx檔案夾放在D盤根目錄下為例)
- 進入D盤: d:
- 進入檔案夾:cd D:\nginx-1.4.7
- 開啟nginx:start nginx
有個nginx的相關指令可到官網進行檢視,或者百度也有很多。
【實作效果】
現在讓我們一起見證奇迹吧!
打開浏覽器,在位址欄中輸入剛才在Nginx中設定的代理(這裡是192.168.0.43:8888)
按F5重新整理(大家如果有興趣可以更改配置檔案中Weight中的比例來看效果,我這裡設定了2權重,也就是說第一個會配置設定的多一些):
【總結】
簡單的部署一個伺服器叢集實作負載均衡是很容易的,但是運用到實戰中就會有很多問題。
比如我們的session就是一個大問題,因為不同的iis之間session是不共享的,
導緻我們項目的session會無效,這裡小夥伴們有什麼好的方法的。
小編想我們是不是可以做一個session伺服器做共享,每個iis都經過session伺服器,這樣的話session就流通了。
具體效果如何我們等待分析。