資料來源:Windows Server2008中的IIS7的五大特性
1、完全模組化的IIS
如果你非常熟悉流行的Apache Web server軟體,那麼你會知道它最大的優勢就在於它的定制化,你可以把它配置為只能顯示靜態的HTML,也可以動態的載入不同的模組以允許不同類型的服務內容。而現在使用的IIS卻無法很好的實現這一特性,這樣就造成了兩方面的問題:其一,由於過多用戶並未使用的特性對於代碼的影響,性能方面有時不能讓使用者滿意;第二,由於預設的介面過多所造成的安全隱患。
新的IIS7則完全解決了這個問題,IIS7從核心層講被分割成了40多個不同功能的模組。像驗證、緩存、靜態頁面處理和目錄清單等功能全部被模組化。這意味著你的Web伺服器可以按照你的運行需要來安裝相應的功能模組。可能存在安全隱患和不需要的模組將不會再載入到記憶體中去,程式的受攻擊面減小了,同時性能方面也得到了增強。
2、通過文字檔配置的IIS7
IIS7另一大特性就是管理工具使用了新的分散式web.config配置系統。IIS7不再擁有單一的metabase 配置儲存,而將使用和ASP.NET支持的同樣的web.config檔模型,這樣就允許使用者把配置和web應用的內容一起存儲和部署,無論有多少網站,用戶都可以通過web.config檔直接配置,這樣當公司需要掛接大量的網站時,可能只需要很短的時間,因為管理員只需要拷貝之前做好的任意一個網站的web.config檔,然後把設置和web應用一起傳送到遠端伺服器上就完成了,沒必要再寫管理腳本來定制配置了。
同時管理工具支援“委派管理(delegated administration)”,用戶可以將一些可以確定的web.config檔通過委派的方式,委派給企業中其他的員工,當然在這種情形下,管理工具裡顯示的只是客戶自己網站的設置,而不是整個機器的設置,這樣IIS管理員就不用為網站的每一個微小變化而費心,版本控制同樣簡單,使用者只需要在組織中保留不同版本的文字檔,然後在必要的時候恢復它們就可以了。
IIS 7中,用戶現在可以用管理工具在Windows客戶機器上創建和管理任意數目的網站。而不再局限於單個網站,同時相比IIS之前的版本,IIS7的管理介面也更加的友好和強大,此外IIS7的管理工具是用.NET和Windows
Forms寫成的,是可以被擴展的。這意味著使用者可以添加自己的UI模組到管理工具裡,為自己的HTTP 運行時模組和配置設置提供管理支援。
MMC 圖形模式管理工具
3、IIS 7安全方面的增強
安全問題永遠是微軟被攻擊的重中之重,IIS的安全問題則主要集中在有關.NET程式的有效管理以及許可權管理方面的問題。而IIS 7正是針對IIS 伺服器遇到了安全問題做了相應的增強。
在新版本中IIS 和ASP.NET 管理設置集成到了單個管理工具裡。這樣,用戶就可以在一個地方查看和設置認證和授權規則,而不是像以前那樣要通過多個不同的對話方塊來做。這給管理人員提供了一個更加一致和清晰的使用者介面,以及web平臺上統一的管理體驗。
在IIS7中,.NET應用程式直接通過IIS代碼運行而不再發送到Internet Server API擴展上,這樣就減少了可能存在的風險,並且提升了性能,同時管理工具內置對ASP.NET 2.0的成員和角色管理系統提供管理介面的支援。這意味著用戶可以在管理工具裡,創建和管理角色和用戶,以及給用戶指定角色,下面是IIS 7 完整的元件分報圖。
IIS 7 完整的元件分報圖
4、IIS 7的Windows PowerShell 管理環境
Windows PowerShell是一個特為系統管理員設計的Windows 命令列shell 。在這個 shell 中包括一個交互提示和一個可以獨立,或者聯合使用的腳本環境。而對於IIS伺服器,Windows PowerShell同樣可以提供全面的管理功能。
不過雖然PowerShell也可以管理運行在Windows Server 2003上的IIS6,但是IIS7才是特為通過PowerShell的命令列來進行管理的。它包括了新的APPCMD功能,APPCMD通過標準的命令列介面來創建和配置網站,這樣的命令列工具的應用場景也非常常見,當用戶的環境中用到例如腳本管理的時候,APPCMD就將發揮非常其極大的優勢。
IS 7.0是包括在Windows Vista客戶機上的,該作業系統的家庭版本也帶有IIS 7.0(而不象IIS 5.1,只有在XP
Professional上才有)。伺服器的IIS 7.0版本在Windows Server2008伺服器發佈,將添加一堆額外的部署特性,包括更加豐富的主機支援,安全的FTP支持,以及內置的web farm部署支持等。
Web farm支持將是特別地酷,它將允許你在一個包含了運行一個伺服器所需的所有編碼,配置,內容和金鑰的檔共用上部署你的web應用。然後你可以添加任意數目的無狀態,無配置的web伺服器到一個web farm上,只需將它們指向那個檔共用,來動態裝載它們的配置設置(包括綁定,虛擬目錄,應用池設置等等)和應用內容即可。這使得在多個機器上擴縮一個應用簡直是小菜一碟,可避免使用複製方法來做配置和應用部署(只要把檔拷貝到檔共用上,web farm裡的所有機器就會馬上裝載變動過的檔)。
5、ASP.NET和IIS 7.0之集成
在早期的IIS版本中,開發人員需要編寫ISAPI擴展/篩檢程式來擴展伺服器的功能。除了寫起來非常痛苦外,ISAPI在如何接入伺服器以及允許開發人員定制方面也是非常有限。例如,你無法在ISAPI擴展中實現URL重寫代碼(注:ASP.NET是以ISAPI擴展的方式實現的)。假如你把執行時間長的代碼編寫成ISAPI篩檢程式的話,結果是你將佔用web伺服器的I/O執行緒(這就是我們不讓託管代碼在請求的篩檢程式執行階段運行的原因)。
我們在IIS7中對核心IIS處理引擎做的一個重大的架構級變動是通過一個新的模組化的請求管道架構來促成極其豐富的擴展性。你現在可以通過與web伺服器註冊一個HTTP擴展性模組(HTTP
Extensibility Module),在任意一個HTTP請求的生命週期的任何地方編寫代碼。這些擴展性模組可以使用native的C++代碼或.NET託管代碼來編寫(你可以使用現有的ASP.NET System.Web.IHttpModule介面來實現)。
所有“內置”的IIS7功能(認證,授權,靜態檔供應,目錄清單支援,經典的ASP,記錄日誌等),現在都是使用這個公開的模組化的管道 API來實現的。這意味著你可以除去這些IIS7“內置”功能的任意一個,而以你自己的實現來替換/擴展這些功能。
IIS 7.0上的ASP.NET本身也從以ISAPI的實現形式變成直接接入IIS7管道的模組:
文章定位: