天天看點

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

分布式,叢集,雲計算機、大資料、負載均衡、高并發······當耳邊響起這些詞時,做為一個菜鳥程式猿無疑心中會激動一番(或許這是判斷是否是一個标準阿猿的标準吧)!

首先自己從宏觀把控一下,通過上網科普自己遇到問題,然後再站在這些巨人的肩膀上解決問題。

問題:在大型WEB應用程系統中,由于請求的數量過大及并發的因素,導緻Web系統會出現當機的現象!

解決方案主要有以下幾個方面:

  1. IIS負載均衡。
  2. 資料庫負載均衡。
  3. 系統架構優化,比如:報表伺服器和應用伺服器的分離等。

接下來就是研究與解決,很簡單首先撿個軟柿子捏,根據常識以及方案排序,決定拿IIS來開刀。

兩張圖了解其中的業務流程

首先上網查資料nginx相關原理,文字性描述感覺很無聊,于是自己總結兩張對比圖,如下:

1、一般情況下(未使用nginx伺服器流程):

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

 2、使用nginx伺服器後流程【注:本圖以一級nginx伺服器為例】:

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

根據這兩張圖對比,不難得出以下結論:

       利用nginx管理起IIS伺服器後:

  1. 可靠性大大增強:一台或多台IIS伺服器當機,服務不中斷!細心的讀者發現如果nginx伺服器當機那?當然可以通過配置多個及多級nginx伺服器來解決。
  2. 處理大通路量時大大減小IIS伺服器壓力,提高通路速度。
  3. 消耗硬體資源多:多增加一台伺服器(在資料量不大的時候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)
10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

【配置Nginx】

使用文本編輯器編輯Nginx配置檔案(到你解壓的相對路徑下面的conf檔案夾下面的nginx.conf檔案編輯)

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

 進入修改主要修改四個地方,如圖一一标注出來了(溫馨提示:不要用記事本打開修改否則可能會亂碼)

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

使用Dos指令進入Nginx檔案夾并啟動Nginx(這裡以将Nginx檔案夾放在D盤根目錄下為例)

  • 進入D盤:  d:
  • 進入檔案夾:cd D:\nginx-1.4.7
  • 開啟nginx:start nginx

有個nginx的相關指令可到官網進行檢視,或者百度也有很多。

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

【實作效果】

現在讓我們一起見證奇迹吧!

打開浏覽器,在位址欄中輸入剛才在Nginx中設定的代理(這裡是192.168.0.43:8888)

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

按F5重新整理(大家如果有興趣可以更改配置檔案中Weight中的比例來看效果,我這裡設定了2權重,也就是說第一個會配置設定的多一些):

10分鐘搭建伺服器叢集——Windows7系統中nginx與IIS伺服器搭建叢集實作負載均衡

【總結】 

 簡單的部署一個伺服器叢集實作負載均衡是很容易的,但是運用到實戰中就會有很多問題。

比如我們的session就是一個大問題,因為不同的iis之間session是不共享的,

導緻我們項目的session會無效,這裡小夥伴們有什麼好的方法的。

小編想我們是不是可以做一個session伺服器做共享,每個iis都經過session伺服器,這樣的話session就流通了。

具體效果如何我們等待分析。