對于使用開源軟件的企業用戶來說,相信每個人心中都會有自己的TOP10,尤其是那些開源軟件擁躉者眼中的TOP10,可能會與我所列的TOP10有些不同。不過,這是經過全球很多開源社區高手共同討論的結果,我覺得這個版本的TOP10是我所能做到的公正、準確的了。當然如果你不同意這樣的TOP10,沒關系,盡管保留你心中的TOP10。
1. HTTP服務器Apach
Apache,一種開放源碼的HTTP服務器,可以在大多數計算機操作系統中運行,由于其多平臺和安全性(注1)被廣泛使用,是流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴展,Perl/Python等解釋器可被編譯到服務器中。 Apache音譯為阿帕奇,是北美印第安人的一個部落,叫阿帕奇族,在美國的西南部。相傳阿帕奇是一個武士,他英勇善戰,且戰無不勝,被印第安人奉為勇敢和勝利的代表,因此后人便用他的名字為印第安部落命名,而阿帕奇族在印第安史上也以強悍著稱。
Apach發展歷史
提到Apach服務器,不得不提到Apache軟件基金會。Apache軟件基金會(也是Apache Software Foundation,簡稱為ASF),是專門為運作一個開源軟件項目的 Apache 的團體提供支持的非盈利性組織,這個開源軟件項目是 Apache 項目。這個組織把自己作為有著相同目標的開發者與用戶的團體,而不是簡單的共享在一個服務器上的一組項目的組織團體。在它所支持的 Apache 項目與子項目中,所發行的軟件產品都遵循 Apache許可證(Apache License)。
Apache軟件基金會(ASF)正式創建于1999年,它的創建者是一個自稱為“Apache 組織”的群體。這個“Apache 組織”在1999年以前已經存在很長時間了,這個組織的開發者愛好們聚集在一起,在美國伊利諾斯大學超級計算機應用程序中心(National Center for Supercomputing Applications,簡稱為NCSA)開發的 NCSA HTTPd 服務器的基礎上開發與維護了一個叫 Apache 的 HTTP服務器。
初 NCSA HTTPd 服務器是由 Rob McCool 開發出來的,但是它的初開發者們逐漸對這個軟件失去了興趣,并轉移到了其他地方,造成了沒有人來對這個服務器軟件提供更多的技術支持。因為這個服務器的功能又如此強大,而代碼可以自由下載修改與發布,當時這個服務器軟件的一些愛好者與用戶開始自發起來,互相交流并分發自己修正后的軟件版本,并不斷改善其功能。為了更好進行溝通,Brian Behlendorf 自己建立了一個郵件列表,把它作為這個群體(或者社區)交流技術、維護軟件的一個媒介,把代碼重寫與維護的工作有效組織起來。這些開發者們逐漸地把他們這個群體稱為“Apache 組織”,把這個經過不斷修正并改善的服務器軟件命名為 Apache 服務器(Apache Server)。由此看來,Apache的誕生極富有戲劇性。
這個命名是根據北美當地的一支印第安部落而來,這支部落以高超的軍事素養和超人的忍耐力著稱,19世紀后半期對侵占他們領土的入侵者進行了反抗。為了對這支印第安部落表示敬仰之意,取該部落名稱(Apache)作為服務器名。但一提到這個命名,這里還有流傳著一段有意思的故事。因為這個服務器是在 NCSA HTTPd 服務器的基礎之上,通過眾人努力,不斷地修正、打補丁(Patchy)的產物,被戲稱為“A Patchy Server”(一個補丁服務器)。在這里,因為“Patchy”與“Apache”是諧音,故后正式命名為“Apache Server”。
自由軟件開發Apache的特點是簡單、速度快、性能穩定,并可做代理服務器來使用。本來它只用于小型或試驗Internet網絡,后來逐步擴充到各種Unix系統中,尤其對Linux的支持相當完美。Apache有多種產品,可以支持SSL技術,支持多個虛擬主機。Apache是以進程為基礎的結構,進程要比線程消耗更多的系統開支,不太適合于多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節點而不是增加處理器。到目前為止Apache仍然是世界上用的多的Web服務器,市場占有率達60%左右。世界上很多的網站如Amazon.com、Yahoo!、W3 Consortium、Financial Times等都是Apache的產物,它的成功之處主要在于它的源代碼開放、有一支開放的開發隊伍、支持跨平臺的應用(可以運行在幾乎所有的Unix、Windows、Linux系統平臺上)以及它的可移植性等方面。
開始,Apache只是Netscape網頁服務器(現在是Sun ONE)的之外的開放源代碼選擇。漸漸的,它開始在功能和速度。超越其他的基于Unix的HTTP服務器。1996年4月以來,Apache一直是Internet上流行的HTTP服務器: 1999年5月它在 57% 的網頁服務器上運行;到了2005年7月這個比例上升到了69%。在2005年11月的時候達到接近70%的市占率,不過隨著擁有大量域名數量的主機域名商轉換為微軟IIS平臺,Apache市占率近年來呈現些微下滑。而Google自己的網頁服務器平臺GWS推出后,加上Lighttpd這個輕量化網頁服務器軟件使用的網站慢慢增加,反應在整體網頁服務器市占率上,根據netcraft在2007年7月的新統計數據,Apache的市占率已經降為52.65%,8月時又滑落到50.92%。盡管如此,它仍舊是現階段因特網市場上,市占率高的網頁服務器軟件。
Apache web服務器軟件主要特點:
◆支持新的HTTP/1.1通信協議。Apache是先使用HTTP/1.1協議的Web服務器之一,它完全兼容HTTP/1.1協議并與HTTP/1.0協議向后兼容。Apache已為新協議所提供的全部內容做好了必要的準備。
◆擁有簡單而強有力的基于文件的配置過程。
◆支持通用網關CGI接口。Apache用mod_cgi模塊來支持CGI,它遵守CGI/1.1標準并且提供了擴充的特征,如定制環境變量和很難在其他Web服務器中找到的調試支持功能。
◆支持基于IP和基于域名的虛擬主機。
◆支持多種方式的HTTP認證。
◆集成Perl處理模塊。Perl已成為CGI腳本編程的基本標準。Apache肯定是使Perl成為這樣流行的CGI編程語言的因素之一,現在Apache比以往任何時候都更加支持Perl,通過使用它的mod_perl模塊你可以將基于Perl的CGI腳本裝入內存,并可以根據需要多次重復使用該腳本。這消除了經常與解釋性語言聯系在一起的啟動開銷。
◆集成代理服務器Proxy服務器。Apache可作為前向代理服務器也可作為后向代理服務器。
◆支持實時監視服務器狀態和定制服務器日志。Apache在記錄日志和監視服務器本身狀態方面向你提供了很大的靈活性,可以通過Web瀏覽器來監視服務器的狀態,也可根據自己的需要來定制日志。
◆支持服務器端包含指令(SSI)。Apache提供擴展的服務器包含命令該項功能,為Web站點開發人員提供了更大的靈活性。
◆支持安全Socket層(SSL)。
◆提供用戶會話過程的跟蹤。通過使用HTTP cookies,一個稱為mod_usertrack的Apache模塊可以在用戶瀏覽Apache Web站點時對用戶進行跟蹤。
◆支持FastCGI。Apache使用mod_fcgi模塊來實現FastCGI環境,并使FastCGI應用程序運行得更快。
◆通過第三方模塊可以支持Java Servlets。Apache的mod_jserv模塊支持Java Servlets該項功能,可使Apache運行服務器的Java應用程序。
◆如果你準備選擇Web服務器,毫無疑問Apache是你的佳選擇。
◆可以運行在所有計算機平臺上。
◆支持虛擬主機。即通過在一個機器上使用不同的主機名來提供多個HTTP服務。Apache支持包括基于IP、名字和Port三種類型的虛擬主機服務。
◆支持HTTP認證。Apache支持基于Web的基本認證,它還為支持基于消息摘要的認證做好了準備。Apache通過使用標準的口令文件DBM SQL調用,或通過對外部認證程序的調用來實現基本的認證。
◆支持用戶Web目錄。Apache允許主機上的用戶使用特定的目錄存放用戶自己的主頁。可以通過如下URL地址來訪問。
◆支持動態共享對象。Apache的模塊可在運行時動態加載,這意味著這些模塊可以被裝入服務器進程空間,從而減少系統的內存開銷。
◆支持多進程。當負載增加時,服務器會快速生成子進程來處理,從而提高系統的響應能力。