顯示具有 windows 2008 標籤的文章。 顯示所有文章
顯示具有 windows 2008 標籤的文章。 顯示所有文章

2009年10月21日 星期三

如何讓IIS及其它web服務於一台伺服器上和平共處

本部份主要是針對IIS在啟動時是獨佔了0.0.0.0:80的狀態,因此在Windows平台上安裝了IIS之後
就無法再透過Apache(或其它的web service)去提供Web服務,若公司有兩種不同需求的Web服務
主機也有不足的問題,那麼我們該如何處理呢?

本文分以Windows 2008及Windows 2003分段討論,可透過下面的連結快速的連結到指定的OS版本的作法:

首先,我們先說明一下,在這個環境之下的需求:
1.一台web server上掛有兩個網路及不同的兩個IP
2.分配IP 10.10.10.1給Aache
3.指定IIS使用192.168.1.241

Windows 2008系列含R2

Windows 2008已經將httpcfg攻能以netsh取代了它的工能,並且內建於windows 2008之中,因此不需要另外進行安裝
欲將IIS 7.0(7.5)等指定成為只服務在單一的網卡上,這個部份就變的非常的簡單了,只需要一個簡單的指令即可:

首先我們先看一下,現在的80port是指定在那個IP,以netstat -na來進行查覽一下,可以看到80port是服務在0.0.0.0
未命名 - 8

1.首先於指令模式之中輸入netsh
2.於netsh>後輸入http(代表設定http的設定值)
3.接下來我們將現在IIS到底在那一個IP上做服務,輸入show iplisten(空白代表0.0.0.0)
4.接下來指定192.168.1.241指定為IIS服務聽取的IP,輸入add iplisten 192.168.1.241
5.我們再度的輸入show iplisten來看一下是不是成功的指定了
未命名 - 4

接下來將w3svc(web服務)重新的啟動,輸入net stop w3svc及net start w3svc
未命名 - 5

再次的以netstat -na來檢查一下,可以由下圖發現80port的服務已經被指定到192.168.1.241了,完成…!
未命名 - 7

Windows 2003系列含R2

由於Web service集中於Web伺服器上,因此為了解決IIS能與Apache相容,並且能IIS及其它web服務安裝於指定IP
並只針對指定IP聽取指定服務,必須透過安裝進階管理套件設定IIS http協定只聽取指定IP,而主機所有網卡(0.0.0.0:80)。

安裝進階管理套件

進階管理套件必須使用windows server 2003第一片光碟片,當您置入光碟片後會出現下列視窗,請直接點選『執行其它工作』。

未命名 - 12

選擇『瀏覽此CD』

未命名 - 13

在瀏覽CD的目錄下請點選SUPPORT目錄,並且進入該目錄中。
未命名 - 14

進入SUPPORT目錄後,請再點選TOOLS目錄
未命名 - 15

請於TOOLS目錄中執行SUPTOOLS.MSI,以開始安裝進階管理工具。
未命名 - 16

請在安裝精靈下直接點選『下一步』。
未命名 - 17

請點選I Agree後,點選下一步。
未命名 - 18

輸入好相關名稱及組織單位名稱,接下來點選下一步。
未命名 - 19

依照預設值進行安裝,並點選install now,進行安裝。
未命名 - 20
未命名 - 21

安裝完成後,按下finish以結束本工具的安裝程序。
未命名 - 22

設定http聽取指定IP

在安裝好進階管理套件後,請直接點選開始列->執行,並且於執行功能中輸入”cmd”以啟動指令模式。
未命名 - 24
未命名 - 25

接下來共分為三個步驟:設定聽取IP,確認設定,重新啟動http協定。
首先我們先來看一下原本的80 Port是指派給0.0.0.0
未命名 - 2

接下來於指令列輸入:httpcfg set iplisten -i 192.168.1.241
接下來請輸入httpcfg query iplisten,來檢查是否有列出設定聽取的IP
緊接著輸入net stop http /y,停止http服務
再輸入net start w3svc,重新啟動http服務
未命名 - 4

完成上述設定後,可以透過netstat –na來檢視80埠由192.168.1.241聽取服務
未命名 - 27

2009年5月1日 星期五

Windows 2008 & SQL Server 2008以NLB及複寫功能達成HA

今天晚上Jason與公司即將畢業的同事辦歡送會,在會中與同部們的伙伴們討論到某個案子因硬體設備相當的缺乏
但是該單位又想達成HA架構,一來是可以讓公司人員有反應的時間,畢竟公司地處南方,要到各地比較不方便
加上高鐵減班直達高鐵成變成每站停的慢鐵,有沒有辦法可以透過即有的功能來達成HA的架構呢?

有幾個因素必須滿足,首先以Web base的專案來舉例,有兩台web及兩台db,但是沒有shared storage可供使用成為claster架構
假設透過loadbalance及複寫功能來達成呢?
LoadBalance的設定請看小弟的所寫的劣帖:Windows Server 2008怎麼設定網路負載(Network LoadBalance)

WEB 部份
●兩台web伺服器
●loadbalance架構(多重主機-設定為無模式;Active/Active)來達成80port的負載
●資料透過DFS達成File Replication

DB 部份
●兩台資料庫伺服器
●loadbalance架構(單一主機;Active/Standby)來達成1433port的負載
●資料庫的資料同步透過合併式複寫達成

明天來實作看看,如果可用的話,再把詳細的步驟與各位網友鄉民分享


完全HA的假想圖

2009/8/4 更新

經過上篇文章SQL Server 2008 複寫實作中將複寫環境建置起來之後,配合前幾個前寫的Windows Server 2008怎麼設定網路負載(Network LoadBalance)Netowork LoadBalance下ASP.NET工作階段的Session states如何處理?,測試環境之下把HA架構測試了一下,下面是我的實作步驟,供大家參考看看…

我們先從一個遠端使用者連入電腦後資訊流的過程來跟大家解釋及說明…
1.使用者輸入網址後,DNS解析後指向Web Load Balance IP。
2.此時Web接禺使用者發出的query時,將session states指向到SQL Server Network Load Balance IP中。
3.Session States透過合併式複寫將Session寫到ASPState資料庫。
4.Web server在將Session回存到資料庫後,讀取Web.config資料庫連結字串取出動態頁面的連接內容
5.讀出字串後,連接到SQL Server Network Load Balance IP,存取所需的資料庫
6.資料庫連結時透過Load Balance分配將資料庫的內容取出
7.經由Web程式整合後再由負責的Web將所需的資訊回覆予使用者。

在實作的部份小弟切割為下列順序:
1.設定web為80 port Load Balance架構
2.設定SQL為1433 port Load Balance架構
3.設定SQL的Session states轉存資料庫(ASPState)
4.設定SQL複寫功能,複寫ASPState及所需存取的資料庫。
5.設定WEB.CONFIG轉存Session連接資訊及manchineKey,若無使用view state則可不需處理ManchineKey問題。
6.開站!!測試,開壓力測試工具實際測試,WEB端流量還是有偏重一某一台,DB則都指向主機視別元最小的伺服器上。

以上希望大家參考一下…

Windows Server 2008怎麼設定網路負載(Network LoadBalance)

Windows 2003設定NLB相信大家對於該部份不默生,但是在Windows 2008的NLB設定似乎與2003的界面相差太大
害大家都找不到,當然Jason的同事也有相關的問題,那麼如果Jason不會設定NLB那MCITP-Enterprise administrator及Server administrator一定是背來的
光是衝著這句話,Jason就一定要在這裡跟大家分享一下,其實兩者大同小異,差異…不大,只是界面上比較生疏一點點。

首先我們先來解釋一下Windows Server的LoadBalance要那些需求:
1.一定要有兩台以上的伺服器。
2.要有n+1個IP(例如:四台伺服器要做NLB那要有5個IP)
3.最好有內部的網路串接(Jason指的是有一個封閉的LAN,方便伺服器不要跟外部使用者搶頻寬)
※要對外服務的網路接到WAN,要伺服器們相互溝通的接到另一個封閉的LAN。

其工作原理就是不論有多少台伺服器,全部都虛擬一個共用的IP,依照負載平衡的類型來做分配(Active/Active, Active/Standby…)
因此,使用者在外端就只會看到一個IP,而後端有多少台伺服器呢?使用者並不需要知道

另外有同事問到LoadBalance的效能如何呢?基本上在軟體的loadbalance之上的效能一定不會是1+1=2,但可以提高可用度(Availability)
對於DoS或DDoS攻擊承受如何呢??這個嘛!!!如果千軍萬馬攻過來,即使你做的再強,正常的頻寬還是被消耗掉還是達陣成功
所以只能單純的提升A.I.C.中的A,下面就是NLB的示意圖,請看~~~

負載平衡架構
NLB示意圖

這在個例範中,我們就以兩台伺服器要建置一個LoadBalance的架構來看,其預設環境如下:

共用IP為:192.168.1.243
網域名稱為:www.jason.com.tw

A伺服器
內部IP:10.10.10.1
外部IP:192.168.1.241

B伺服器
內部IP:10.10.10.2
外部IP:192.168.1.242

首先於『開始』->『系統管理工具』->『伺服器管理員』
未命名 - 6

於『伺服器管理員』中選擇『功能』,並選擇『新增功能』
未命名 - 7

核選『網路負載平衡』,並按下『下一步』按鈕進行安裝
未命名 - 9
未命名 - 11
未命名 - 12

安裝完成後,你可以在『開始』->『系統管理工具』中就會看到『網路負載平衡管理員』
未命名 - 14

接下來,請在A伺服器上執行『網路負載平衡管理員』並且選擇『叢集』->『新增』
未命名 - 15

於連線中選擇連線至A伺服器的IP(192.168.1.241)上再按下連線,並且選擇Outbound的網路卡做為叢集的界面。
未命名 - 17

在叢集的架構之下,有主機的識別元,這個是應用在Active/Standby模式下的應用,依照識別元的順序來做分配流量的依據。
未命名 - 18

接下來要設定叢集的IP,將要使用做為公用的叢集IP(192.168.1.243)新增至叢集設定中。
未命名 - 19
未命名 - 20

完成叢集IP設定後,可選擇輸入FQDN及叢集操作模式。
叢集操作模式的解說如下:(由MSDN轉載而來)
●若您選取單點傳播支援,NLB 會自動指示屬於叢集介面卡的驅動程式覆寫介面卡的唯一、內建網路位址,並將其 MAC 位址變更為叢集的 MAC 位址。這是用在所有叢集主機上的位址。您不需要手動設定網路介面卡來辨識此位址。(請注意,某些網路介面卡不支援變更其 MAC 位址。如果您遇到此問題,就必須安裝支援變更 MAC 位址的網路介面卡。)
以上說明如果很難理解可以向Jason詢問,不過,一般狀況之下,我們會設定成為單點傳播,以降低因硬體或網路環境可能造成的問題。
●[叢集操作模式] 參數指定是否應針對叢集操作使用多點傳送 MAC 位址。如果多點傳送已啟用,NLB 會將屬於叢集介面卡的叢集 MAC 位址轉換為多點傳送位址。它也可確保叢集的主要 IP 位址解析為此屬於 ARP 通訊協定的多點傳送位址。介面卡現在可使用單點傳播模式中停用的原始、內建 MAC 位址。
●在多點傳送模式中,您也可啟用網際網路群組管理通訊協定 (IGMP) 支援,這可限制流量只流向網路負載平衡連接埠來限制切換氾濫。也就是說,啟用 IGMP 支援可確保供 NLB 叢集處理的流量只通過服務叢集主機的連接埠而非所有切換連接埠。
未命名 - 21

接下來必須選擇連接埠的規則,其中包含有要做負載平衡的連接埠範圍、協定範圍、篩選模式。
當然各位大大對於前兩者(連接埠範圍、協定範圍)不會有啥問題,那麼篩選模式呢??
●[多重主機](Active/Active) 參數指定叢集中的多部主機會處理相關連接埠規則的網路流量。此篩選模式可將網路負載分散到多部主機,提供延展的效能與容錯。您可指定負載平均分散到各主機或各主機處理指定的負載權數。
●[單一主機] (Active/Standby)參數指定叢集中的單一主機根據指定的處理優先順序處理相關連接埠規則的網路流量。此篩選模式為處理網路流量提供連接埠特定容錯。
●[停用這個連接埠範圍] 應該沒有人會選這一個吧,選擇這個選項代表不會有loadbalance的功能,因為你把它停用掉了。

但是選定了多重主機又有三個選項,這三個選項是分配的依據:
●[無] 選項指定來自相同用戶端 IP 位址的多個連線可由不同的叢集主機處理 (沒有用戶端相似性)。為了讓網路負載平衡可正確處理 IP 片段,針對通訊協定設定選取 [UDP] 或 [兩者] 時,應避免使用 [無]。
●[單一] 選項指定 NLB 應將來自同一個用戶端 IP 位址的多個要求導向到同一部叢集主機。這是 [相似性] 的預設設定。您可選擇修改 NLB 用戶端相似性,啟用 [網路] 選項而非 [單一] 選項,將來自 TCP/IP C 類別位址範圍 (而非單一 IP 位址) 的所有用戶端要求導向到單一叢集主機。此功能確保使用多部 Proxy 伺服器存取叢集的用戶端可使其 TCP 連線導向到同一部叢集主機。
●[網路] 選項指定 NLB 將來自同一個 TCP/IP C 類別位址範圍的多個要求導向到同一部叢集主機。啟用 [網路] 相似性而非 [單一] 相似性,確保使用多部 Proxy 伺服器存取叢集的用戶端可使其 TCP 連線導向到同一部叢集主機。
※選擇用「無」會很平衡的將連線平均的分配到每台叢集主機上,選擇單一可以確保session不會有中斷的問題,選擇網路則是以c class的網段來分配連入主機。
因此我們先以靜態網頁的設定選擇使用「無」相似性。完成於伺服器設定NLB後。
未命名 - 22
未命名 - 23

切換至伺服器B,開啟『網路負載平衡管理員』->『叢集』->『連線到現有的叢集』
未命名 - 24

並輸入伺服器的封閉IP(10.10.10.1)按下連線,此時伺服器B會透過封閉連線向伺服器A要求Loadbalance相關設定及通訊。
選定叢集名稱後,點下完成,隨即可以於伺服器B以封閉連線向伺服器A登入叢集。
未命名 - 26

於叢集名稱上按『右鍵』選擇『新增主機到叢集』
未命名 - 27

輸入伺服器B的封閉IP(10.10.10.2)點選連線,並且選擇外部IP(192.168.1.242)加入叢集介面中
未命名 - 28

設定主機參數部份來設定優先順序的主機識別元並點選下一步
未命名 - 29

此時伺服器B會向叢集取得連線規則,若此時要再加入其它規則也會一併的發佈至叢集中
未命名 - 30

完成後切換至伺服器A中點選『叢集』->『重新整理』,可以於叢集中看到伺服器B已交集至叢集中了。
未命名 - 31
未命名 - 32

接下來於伺服器A上瀏覽網頁可看到預設的文件”我是ServerA”
未命名 - 33

切換至伺服器B上上瀏覽網頁可看到預設的文件為我是ServerB
未命名 - 34

呼~~~~!拉拉雜雜的寫了一大篇,希望對要考MCITP的伙伴或是必須要設定高可用性架構的苦主有所幫助,有任何建議請您不吝指教,謝謝大家~!

參考資料

# Geek Lectures - Things geeks should know about » Blog Archive » Installing Network Load Balancing (NLB) on Windows Server 2008
PingBack from http://geeklectures.info/2008/01/07/installing-network-load-balancing-nlb-on-windows-server-2008/

Tuesday, January 08, 2008 12:50 AM by Geek Lectures - Things geeks should know about » Blog Archive » Installing Network Load Balancing (NLB) on Windows Server 2008
# MSDN Blog Postings » Installing Network Load Balancing (NLB) on Windows Server 2008
PingBack from http://msdnrss.thecoderblogs.com/2008/01/08/installing-network-load-balancing-nlb-on-windows-server-2008/

Tuesday, January 08, 2008 12:52 AM by MSDN Blog Postings » Installing Network Load Balancing (NLB) on Windows Server 2008
# Microsoft Windows Update » Installing Network Load Balancing (NLB) on Windows Server 2008
PingBack from http://microsoft-windows-update.blogyblog.info/?p=4834

Tuesday, January 08, 2008 1:45 AM by Microsoft Windows Update » Installing Network Load Balancing (NLB) on Windows Server 2008
# Anderson Patricio Blog » Blog Archive » Installing Network Load Balancing (NLB) on Windows Server 2008
PingBack from http://blogs.msexchange.org/patricio/2008/01/08/installing-network-load-balancing-nlb-on-windows-server-2008/

Tuesday, January 08, 2008 11:00 AM by Anderson Patricio Blog » Blog Archive » Installing Network Load Balancing (NLB) on Windows Server 2008
# Discount Airline Tickets » Installing Network Load Balancing (NLB) on Windows Server 2008
PingBack from http://www.travel-hilarity.com/travel-airline-tickets/?p=603