IIS是Internet Information Server的縮寫,它是微軟公司主推的WEB服務(wù)器,現(xiàn)在用戶一般常用的版本是Windows2003里面包含的IIS 6或者是更早的IIS 5,IIS與Window NT Server完全集成在一起,因而用戶能夠利用Windows NT Server和NTFS(NT File System,NT的文件系統(tǒng))內(nèi)置的安全特性,建立強(qiáng)大、靈活而安全的Internet和Intranet站點(diǎn)。IIS支持ISAPI,使用ISAPI可以擴(kuò)展服務(wù)器功能, IIS的設(shè)計(jì)目的是建立一套集成的服務(wù)器服務(wù),用以支持HTTP、FTP和SMTP,它能夠提供快速且集成了現(xiàn)有產(chǎn)品,同時(shí)可擴(kuò)展的Internet服務(wù)器。
新的IIS7在Windows Server2008中加入了更多的安全方面的設(shè)計(jì),用戶現(xiàn)在可以通過微軟的.Net語言來運(yùn)行服務(wù)器端的應(yīng)用程序。除此之外,通過IIS7新的特性來創(chuàng)建模塊將會(huì)減少代碼在系統(tǒng)中的運(yùn)行次數(shù),將遭受黑客腳本攻擊的可能性降至最低。從安全的觀點(diǎn)來考慮,這是IIS所涉及的一個(gè)新領(lǐng)域。 如此多的新特性,讓我們對(duì)Windows Server2008中的IIS7充滿了渴望,下面就讓我們一起看看IIS中五個(gè)最為核心的增強(qiáng)特性:
完全模塊化的IIS
如果你非常熟悉流行的Apache Web server軟件,那么你會(huì)知道它最大的優(yōu)勢就在于它的定制化,你可以把它配置為只能顯示靜態(tài)的HTML,也可以動(dòng)態(tài)的加載不同的模塊以允許不同類型的服務(wù)內(nèi)容。而現(xiàn)在使用的IIS卻無法很好的實(shí)現(xiàn)這一特性,這樣就造成了兩方面的問題:其一,由于過多用戶并未使用的特性對(duì)于代碼的影響,性能方面有時(shí)不能讓用戶滿意;第二,由于默認(rèn)的接口過多所造成的安全隱患。
新的IIS7則完全解決了這個(gè)問題,IIS7從核心層講被分割成了40多個(gè)不同功能的模塊。像驗(yàn)證、緩存、靜態(tài)頁面處理和目錄列表等功能全部被模塊化。這意味著你的Web服務(wù)器可以按照你的運(yùn)行需要來安裝相應(yīng)的功能模塊。可能存在安全隱患和不需要的模塊將不會(huì)再加載到內(nèi)存中去,程序的受攻擊面減小了,同時(shí)性能方面也得到了增強(qiáng)。
通過文本文件配置的IIS7
IIS7另一大特性就是管理工具使用了新的分布式web.config配置系統(tǒng)。IIS7不再擁有單一的metabase 配置儲(chǔ)存,而將使用和asp.net支持的同樣的web.config文件模型,這樣就允許用戶把配置和web應(yīng)用的內(nèi)容一起存儲(chǔ)和部署,無論有多少站點(diǎn),用戶都可以通過web.config文件直接配置,這樣當(dāng)公司需要掛接大量的網(wǎng)站時(shí),可能只需要很短的時(shí)間,因?yàn)楣芾韱T只需要拷貝之前做好的任意一個(gè)站點(diǎn)的web.config文件,然后把設(shè)置和web應(yīng)用一起傳送到遠(yuǎn)程服務(wù)器上就完成了,沒必要再寫管理腳本來定制配置了。
同時(shí)管理工具支持“委派管理(delegated administration)”,用戶可以將一些可以確定的web.config文件通過委派的方式,委派給企業(yè)中其他的員工,當(dāng)然在這種情形下,管理工具里顯示的只是客戶自己網(wǎng)站的設(shè)置,而不是整個(gè)機(jī)器的設(shè)置,這樣IIS管理員就不用為站點(diǎn)的每一個(gè)微小變化而費(fèi)心,版本控制同樣簡單,用戶只需要在組織中保留不同版本的文本文件,然后在必要的時(shí)候恢復(fù)它們就可以了。
微軟的產(chǎn)品向來以用戶界面友好引以為豪,然而作為為IT人士設(shè)計(jì)的IIS7服務(wù)器這一點(diǎn)卻好像并不明顯,回想從IIS 4 到IIS 6 ,提供給用戶的管理控制臺(tái)操作起來并不十分方便,而且由于技術(shù)等原因的限制,用戶很難通過一個(gè)統(tǒng)一的界面來實(shí)現(xiàn)全部的管理工作。
MMC 圖形模式管理工具
而在新的IIS 7中,這一問題得到了明顯的改觀,用戶現(xiàn)在可以用管理工具在Windows客戶機(jī)器上創(chuàng)建和管理任意數(shù)目的網(wǎng)站。而不再局限于單個(gè)網(wǎng)站,同時(shí)相比IIS之前的版本,IIS7的管理界面也更加的友好和強(qiáng)大,此外IIS7的管理工具是用.NET和Windows Forms寫成的,是可以被擴(kuò)展的。這意味著用戶可以添加自己的UI模塊到管理工具里,為自己的HTTP 運(yùn)行時(shí)模塊和配置設(shè)置提供管理支持。
IIS 7安全方面的增強(qiáng)
安全問題永遠(yuǎn)是微軟被攻擊的重中之重,其實(shí)并非微軟對(duì)安全漠不關(guān)心,實(shí)在是因?yàn)槲④涍@艘巨型戰(zhàn)艦過于龐大,難免百密一失,好在微軟積極的響應(yīng)著每一個(gè)安全方面的意見與建議。IIS的安全問題則主要集中在有關(guān).NET程序的有效管理以及權(quán)限管理方面的問題。而IIS 7正是針對(duì)IIS 服務(wù)器遇到了安全問題做了相應(yīng)的增強(qiáng)。
在新版本中IIS 和ASP.NET 管理設(shè)置集成到了單個(gè)管理工具里。這樣,用戶就可以在一個(gè)地方查看和設(shè)置認(rèn)證和授權(quán)規(guī)則,而不是像以前那樣要通過多個(gè)不同的對(duì)話框來做。這給管理人員提供了一個(gè)更加一致和清晰的用戶界面,以及web平臺(tái)上統(tǒng)一的管理體驗(yàn)。
在IIS7中,.NET應(yīng)用程序直接通過IIS代碼運(yùn)行而不再發(fā)送到Internet Server API擴(kuò)展上,這樣就減少了可能存在的風(fēng)險(xiǎn),并且提升了性能,同時(shí)管理工具內(nèi)置對(duì)ASP.NET 3.0的成員和角色管理系統(tǒng)提供管理界面的支持。這意味著用戶可以在管理工具里,創(chuàng)建和管理角色和用戶,以及給用戶指定角色,下面是IIS 7 完整的組件分報(bào)圖。
IIS 7 完整的組件分報(bào)圖
IIS 7的Windows PowerShell 管理環(huán)境
相信關(guān)注腳本編程或者是Exchange Server 2007的朋友都不會(huì)對(duì)Windows PowerShell感到陌生, Windows PowerShell是一個(gè)特為系統(tǒng)管理員設(shè)計(jì)的Windows 命令行shell 。在這個(gè) shell 中包括一個(gè)交互提示和一個(gè)可以獨(dú)立,或者聯(lián)合使用的腳本環(huán)境。對(duì)于熱愛腳本管理的IT PRo們Windows PowerShell必將讓他們愛不釋手。而對(duì)于IIS服務(wù)器,Windows PowerShell同樣可以提供全面的管理功能。
不過雖然PowerShell也可以管理運(yùn)行在Windows Server 2003上的IIS6,但是IIS7才是特為通過PowerShell的命令行來進(jìn)行管理的。它包括了新的APPCMD功能,APPCMD通過標(biāo)準(zhǔn)的命令行界面來創(chuàng)建和配置站點(diǎn),這樣的命令行工具的應(yīng)用場景也非常常見,當(dāng)用戶的環(huán)境中用到例如腳本管理的時(shí)候,APPCMD就將發(fā)揮非常其極大的優(yōu)勢。
IS 7.0是包括在Windows Vista客戶機(jī)上的,該操作系統(tǒng)的家庭版本也帶有IIS 7.0(而不象IIS 5.1,只有在XP Professional上才有)。服務(wù)器的IIS 7.0版本將在今年稍后隨Windows Server2008服務(wù)器發(fā)布,將添加一堆額外的部署特性,包括更加豐富的主機(jī)支持,安全的FTP支持,以及內(nèi)置的web farm部署支持等。
Web farm支持將是特別地酷,它將允許你在一個(gè)包含了運(yùn)行一個(gè)服務(wù)器所需的所有編碼,配置,內(nèi)容和密鑰的文件共享上部署你的web應(yīng)用。然后你可以添加任意數(shù)目的無狀態(tài),無配置的web服務(wù)器到一個(gè)web farm上,只需將它們指向那個(gè)文件共享,來動(dòng)態(tài)裝載它們的配置設(shè)置(包括綁定,虛擬目錄,應(yīng)用池設(shè)置等等)和應(yīng)用內(nèi)容即可。這使得在多個(gè)機(jī)器上擴(kuò)縮一個(gè)應(yīng)用簡直是小菜一碟,可避免使用復(fù)制方法來做配置和應(yīng)用部署(只要把文件拷貝到文件共享上,web farm里的所有機(jī)器就會(huì)馬上裝載變動(dòng)過的文件)。
推出Windows Server2008服務(wù)器的Beta3版本支持go-live許可,所以你不久就能利用這個(gè)功能。我們已經(jīng)在用IIS 7.0集群運(yùn)行 Windows Server2008 了,所以你不會(huì)寂寞的!
Windows PowerShell 管理圖
IIS7.0 遷移
IIS7.0 遷移網(wǎng)站比IIS6.0更方便,因?yàn)锳pache Web server它最大的優(yōu)勢就在于它的定制化管理,IIS7.0現(xiàn)在使用Apache概念,所以把站點(diǎn)的配置文件拷貝到另一臺(tái)IIS7.0主機(jī)上即可以,詳情請(qǐng)了解上面《通過文本文件配置的IIS7》,《IIS 7的Windows PowerShell 管理環(huán)境》。
ASP.NET和IIS 7.0之集成
在早期的IIS版本中,開發(fā)人員需要編寫ISAPI擴(kuò)展/過濾器來擴(kuò)展服務(wù)器的功能。除了寫起來非常痛苦外,ISAPI在如何接入服務(wù)器以及允許開發(fā)人員定制方面也是非常有限。例如,你無法在ISAPI擴(kuò)展中實(shí)現(xiàn)URL重寫代碼(注:ASP.NET是以ISAPI擴(kuò)展的方式實(shí)現(xiàn)的)。假如你把運(yùn)行時(shí)間長的代碼編寫成ISAPI過濾器的話,結(jié)果是你將占用web服務(wù)器的I/O線程(這就是我們不讓托管代碼在請(qǐng)求的過濾器執(zhí)行階段運(yùn)行的原因)。
我們在IIS7中對(duì)核心IIS處理引擎做的一個(gè)重大的架構(gòu)級(jí)變動(dòng)是通過一個(gè)新的模塊化的請(qǐng)求管道架構(gòu)來促成極其豐富的擴(kuò)展性。你現(xiàn)在可以通過與web服務(wù)器注冊一個(gè)HTTP擴(kuò)展性模塊(HTTP Extensibility Module),在任意一個(gè)HTTP請(qǐng)求的生命周期的任何地方編寫代碼。這些擴(kuò)展性模塊可以使用native的C++代碼或.NET托管代碼來編寫(你可以使用現(xiàn)有的ASP.NET System.Web.IHttpModule接口來實(shí)現(xiàn))。
所有“內(nèi)置”的IIS7功能(認(rèn)證,授權(quán),靜態(tài)文件供應(yīng),目錄清單支持,經(jīng)典的ASP,記錄日志等),現(xiàn)在都是使用這個(gè)公開的模塊化的管道API來實(shí)現(xiàn)的。這意味著你可以除去這些IIS7“內(nèi)置”功能的任意一個(gè),而以你自己的實(shí)現(xiàn)來替換/擴(kuò)展這些功能。
IIS 7.0上的ASP.NET本身也從以ISAPI的實(shí)現(xiàn)形式變成直接接入IIS7管道的模塊:
IIS6.0 和IIS7.0 比較圖
這帶來諸多好處:
1) 你現(xiàn)在可以對(duì)服務(wù)器的所有請(qǐng)求(例如, .htm,.php,.jsp文件)使用ASP.NET表單認(rèn)證,成員/角色,以及任何其他特性。
2) 你現(xiàn)在可以輕松地重寫任何web請(qǐng)求的URL或者以種種有趣的方式對(duì)請(qǐng)求做改動(dòng)。
3) 你可以使用VB或C#替換或擴(kuò)展任何現(xiàn)有的IIS特性(例如,你可以除去內(nèi)置的目錄清單模塊,接入你自己的模塊)。
這確實(shí)給.NET開發(fā)人員帶來了無窮多的擴(kuò)展性機(jī)會(huì)。
IIS 7.0 六大新特性:
1)模塊化的網(wǎng)絡(luò)核心允許用戶增加和刪除特定的功能。如果要使用服務(wù)統(tǒng)計(jì)構(gòu)件,僅需幾個(gè)模塊(不包括ISAPI)。
2)一個(gè)統(tǒng)一標(biāo)準(zhǔn)的HTTP管道,它對(duì)應(yīng)于本地管理方面的應(yīng)用程序。用戶可以對(duì)經(jīng)典的ASP網(wǎng)頁使用基于窗體的認(rèn)證系統(tǒng)。
3)用戶可以建立自己的IHttpModule以及IHttpHandlers,并且把它們插入到統(tǒng)一的管道。
4)新款分布式的xml設(shè)置系統(tǒng),它利用了ASP.NET的設(shè)置系統(tǒng)的優(yōu)點(diǎn)。
5)改善的診斷和問題解答機(jī)制,包括了新Runtime狀態(tài)以及跟蹤功能。
6)新型可擴(kuò)展,面向任務(wù)的管理員用戶界面。
總而言之,IIS 7將為Web管理員以及Web愛好者提供更加豐富,更加易用的管理工具。在新的IIS7中,無論是管理方面還是安全方面都得到了全新的設(shè)計(jì),而從用戶群的角度上講,利用IIS7, 個(gè)人用戶可以更快,更簡便的建立自己的站點(diǎn),而企業(yè)用戶則可以更加全面,更加安全的維護(hù)和管理自己的WEB環(huán)境。隨著Windows Server2008的日益臨近,相信有關(guān)IIS7管理的相關(guān)介紹也會(huì)越來越多,究竟新版本有沒有帶給我們實(shí)質(zhì)的變革,還是只是一個(gè)IIS服務(wù)器功能的增強(qiáng),讓我們拭目以待吧。
新聞熱點(diǎn)
疑難解答
圖片精選