两大主流Web服务器之分析与对比
| IIS ? | ||||
Apache
?
?
?
獨立的請求處理機制
?
是
?
是(有限)
?
?
MPM
?
是
?
是
?
?
線程支持
?
是
?
是(在適當的操作系統上)
?
?
?
?
?
三、動態組件
在IIS中,開發動態應用的主要工具是ASP,ASP實際上是一種允許將代碼嵌入到HTML頁面的解決方案的統稱。服務器根據客戶端的請求解析ASP頁面,將ASP頁面生成的HTML結果發回到客戶端。ASP系統允許開發者使用各種編程語言,包括Visual Basic、VBScript、JavaScript、Java和C/C++,還有各種源代碼開放的編程語言,諸如Perl和Python。另外,IIS繼續支持傳統的CGI應用開發方式,還有以ISAPI篩選器為特征的IIS特有的篩選、執行系統。
Apache的設計目標也是支持多種編程語言,或者通過CGI模式執行,或者直接將語言解釋器嵌入到Apache環境然后以動態模塊調用的形式執行,對于用PHP、Perl和Python之類語言編寫的動態組件,這種處理方式顯著地提到了性能。
這兩種系統都支持JSP模型,而且大多數JSP應用程序只要很少的修改就可以在兩種平臺之間遷移。其他一些語言也相似,但效果各不相同,例如只要安裝了ChilliSoft ASP組件(www.chillisoft.com),Unix平臺也同樣能夠支持ASP。
當前,Unix還不能支持的一項特性是Microsoft.NET環境。IIS 6.0和Windows Server 2003不僅大量地應用了.NET框架技術,而且已經與.NET框架緊密結合。
?
?
特性
?
IIS
?
Apache
?
?
?
ASP
?
是
?
使用ChilliSoft ASP
?
?
CGI
?
是
?
是
?
?
Perl
?
是
?
是
?
?
Python
?
是
?
是
?
?
PHP
?
是
?
是
?
?
JSP
?
是
?
是
?
?
集成.NET支持
?
是
?
否
?
?
?
?
?
四、安全和驗證
IIS因其與操作系統的緊密結合而獲益良多,Windows中配置、管理和驗證用戶的系統同時也為IIS服務器提供了安全和驗證服務,由于只需要管理一個安全系統,管理負擔大大減輕。同時,在適當的配置下,用戶只要登錄到Windows,就可以同時通過Intranet自動登錄到IIS服務器上的應用。
由于整個操作系統以及IIS服務器都使用同一個身份驗證系統,所以分配Web網站所在文件系統的訪問權限也很方便。例如,當用戶登錄到Web應用,他訪問網站各個目錄的權限也已經由用戶和組的授權情況決定。
相比之下,Apache的安全和管理系統不象IIS那樣與操作系統緊密結合在一起。雖然有一些模塊和適配器能夠支持各種不同的驗證和安全資源,包括活動目錄(Active Directory)、Unix密碼文件、LDAP服務器,但從整體上看,Apache服務器與它所支持的操作系統的分離程度比較大。例如,當用戶身份用Unix密碼文件驗證時,Apache仍會忽略底層文件系統上設置的文件權限。
從通信安全的角度來看,兩種Web服務器都支持SSL加密技術,允許使用IPSec技術。
?
?
特性
?
IIS
?
Apache
?
?
?
安全登錄
?
是
?
是
?
?
SSL
?
是
?
是
?
?
基本驗證
?
是
?
是
?
?
摘要驗證
?
是
?
是
?
?
LDAP驗證
?
是
?
是,需要第三方模塊的支持
?
?
活動目錄驗證
?
是
?
是,需要第三方模塊的支持
?
?
Passport驗證
?
是
?
否
?
?
?
?
?
五、性能
性能評測向來很困難,因為不管待評測的系統是多么相似,配置方面稍作改動,性能就可能發生極大地變化。雖然在同樣的硬件上一律采用默認設置也能評出一個“優勝者”,但這不能反映出被評測系統真正的性能。同樣地,我們還可以配置出這樣的一個IIS服務器和一個Apache服務器,或者使其具有優異的性能,或者使其具有低劣的性能,但仍不能獲得真正有價值的性能評比結果。
因此,一種更好的辦法也許是分析各個系統的性能潛力。IIS集成了大量改善性能的特性,在多處理器系統上工作進程模式顯著地提高了性能,ASP和ISAPI擴展使得應用程序能夠從處理請求的進程直接運行。另外,以內核模式運行的http.sys也能夠從緩沖區或磁盤將靜態內容或簡單的動態內容直接提供給客戶端,避免了將請求轉發給工作進程的開銷。
Apache同樣也有類似的功能。Apache能夠緩沖許多信息,mod_perl和mod_php之類的工具使得動態頁面和模板頁面的執行速度幾乎達到了靜態頁面的水平。這些模塊類似于IIS環境中的ASP和ISAPI篩選器,直接把解釋器嵌入到了Apache執行環境之中,避免了調用外部應用程序的開銷,極大地提高了性能。
?
?
特性
?
IIS
?
Apache
?
?
?
內存緩沖
?
是
?
是
?
?
磁盤緩沖
?
是
?
否
?
?
內建的執行支持
?
是,需要合適的ISAPI篩選器
?
是,需要合適的模塊
?
?
帶緩沖的執行支持
?
是,需要ASP/ASP.NET
?
是,需要mod_perl等模塊
?
?
?
?
?
六、管理
兩種Web服務器系統在管理方面的差別很大。管理Apache的主要途徑是編輯文本格式的配置文件,雖然有許多命令行工具、Web工具和GUI界面的工具可供選用,但它們實際上都依賴于文本配置文件來更新配置信息。例如,Comanche就為Apache系統提供了一個完善的管理界面。gui.apache.org提供了各種工具的清單。
用文本文件提供配置信息有其優點,例如很容易在多臺機器之間實現配置信息共享,可以方便地將配置信息從一個文件復制到另一個配置文件。當然缺點也有,例如配置文件比較容易損壞。如果不進行“軟”重啟,Apache不能使用修改后的配置信息,所以在重新啟動Apache之前,管理員必須確保配置信息確實有效,這可以借助內建的測試機制來完成。
相比之下,IIS提供的系統配置工具就要豐富多了。雖然底層的配置信息主要保存在XML格式的文本文件之中,但IIS允許管理員在系統運行的時候修改配置和底層的文件。由于配置文件是XML格式,結構要比普通文本文件嚴格得多,同時又有足夠的靈活性支持各種不同的配置需要。為便于遠程支持,Windows Server 2003還集成了一個telnet服務器,使得管理員能夠利用各種命令行工具遠程管理服務器。
在IIS眾多的配置編輯工具中,比較常用的包括一個微軟管理控制臺的管理單元,一個Web方式的管理系統,還有添加、更新和配置各種組件的一組命令行工具。管理員可以隨時手工編輯XML文件,IIS服務器將立即自動反映出修改后的配置,不需要重新啟動。另外,XML配置文件也很容易移植,方便了多臺機器之間的配置信息共享。
IIS的MMC管理單元為網絡上的多臺服務器提供了一個一致的、分布式的管理界面,不過,在Apache這邊,Webmin之類基于Web的管理工具,或者Comanche之類的專用GUI工具,也具有同樣的功能。
?
?
特性
?
IIS
?
Apache
?
?
?
文本格式的配置文件
?
是,XML文件
?
是
?
?
命令行管理
?
是
?
有限
?
?
遠程命令行管理接口
?
是
?
是
?
?
基于Web的管理
?
是
?
是,通過Webmin等工具
?
?
圖形用戶界面的管理工具
?
是
?
是,通過Comanche等工具。
?
?
?
?
?
七、可靠性
在比較IIS和Apache的過程中,可靠性也許是爭議最大的一個項目了。根據資料,兩種服務器最新版本之間的差異很小,在實驗室里,一個Windows Server 2003系統從2003年1月開始運行一個Web網站——到現在已經有8個多月了,期間安裝了各種必要的更新軟件,但沒有重新啟動服務器;作為對比,旁邊的一個Apache/Solaris系統已經運行了335天,也沒有出現問題。
在IIS 6.0中,大部分的請求通常由工作進程處理,IIS 6.0為工作進程提供了大量的管理和控制機制。為了提高可靠性,IIS可以隔離各個應用程序,讓應用程序運行在各自獨立的內存和執行空間之中,或者與其他應用程序共享執行空間。這意味著,如果一個應用程序出了問題,最多只影響到當前的工作進程,但不會影響到其他工作進程及其運行的應用程序,也不會影響到處理請求的內核。
在進程和線程管理方面,Apache的許多操作都是自動的,但內存和應用程序的隔離問題仍舊存在,尚未提出有效的解決辦法。Apache通過自動回收組件機制解決了一部分問題,即使某個組件出現了嚴重問題時內核仍會繼續運行。不過,有時仍不免出現必須重新啟動整個Apache服務器的情況。其中一個例子就是對Apache服務器本身進行配置之時,一般都需要重新啟動。但是,對于IIS服務器上運行的Web網站,絕大多數對服務器本身的更新和改進不會影響用戶訪問,因為配置修改可以在服務器運行的同時進行。
?
?
特性
?
IIS
?
Apache
?
?
?
進程/線程管理
?
是
?
是
?
?
隔離應用程序
?
是
?
有限
?
?
運行時修改配置
?
是
?
否
?
?
?
?
?
八、結束語
雖然這兩種服務器之間有著許多不同之處,但真正的選擇往往要根據企業的需要而定,有時甚至由個人的愛好和需要決定。例如,許多開發者偏愛使用Unix和Apache環境下的Perl,盡管Perl和Apache同樣可以在Windows上運行,IIS也支持Perl,但這些因素仍舊不能影響這類開發者的選擇。
如果服務器管理問題是首要的考慮因素,IIS豐富的管理工具應當是最佳選擇,同時IIS在安全機制、活動目錄集成及其帶來的安全管理方面的優勢也很重要。
當然,部署費用也是一個不可忽視的重要因素。Apache是完全免費的,而且可以安裝到Linux之類的免費操作系統上。IIS 6.0現在只能在Windows Server 2003上運行。雖然Windows Server 2003的Web版要比標準版便宜許多,但與Apache相比就顯得很昂貴了——至少從表面上看是這樣的。
轉載于:https://www.cnblogs.com/yizhu2000/archive/2007/12/08/987456.html
總結
以上是生活随笔為你收集整理的两大主流Web服务器之分析与对比的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浦发白金信用卡年费是多少
- 下一篇: 提高ASP.NET性能的一点方法