Apache (http server)的詳細介紹

zhulch發表於2009-06-04

寫的很詳細,值得收藏,有時間就看看。。

[@more@]

阿帕奇族  Apache音譯為阿帕奇,是北美印第安人的一個部落,叫阿帕奇族,在美國的西南部。相傳阿帕奇是一個武士,他英勇善戰,且戰無不勝,被印第安人奉為勇敢和勝利的代表,因此後人便用他的名字為印第安部落命名,而阿帕奇族在印第安史上也以強悍著稱。

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)。

  這個命名是根據北美當地的一支印第安部落而來,這支部落以高超的軍事素養和超人的忍耐力著稱,19世紀後半期對侵佔他們領土的入侵者進行了反抗。為了對這支印第安部落表示敬仰之意,取該部落名稱(Apache)作為伺服器名。但一提到這個命名,這裡還有流傳著一段有意思的故事。因為這個伺服器是在 NCSA HTTPd 伺服器的基礎之上,透過眾人努力,不斷地修正、打補丁(Patchy)的產物,被戲稱為“A Patchy Server”(一個補丁伺服器)。在這裡,因為“Patchy”與“Apache”是諧音,故最後正式命名為“Apache Server”。

  後來由於商業需求的不斷擴大,以 Apache HTTP 伺服器為中心,啟動了更多的與 Apache 專案並行的專案,比如mod_ perl、PHP、Java Apache等等。隨著時間的推移、形勢的變化,Apache軟體基金會的專案列表也不斷更新變化中--不斷的有新專案啟動,專案的中止以及專案的拆分與合併。比如一開始,Jakarta 就是為了發展 JAVA 容器而啟動的 Java Apache 專案,後來由於昇陽公司(SUN)的建議,專案名稱變為 Jakarta 。但當時該專案的管理者也沒有想到 Jakarta 專案因為 JAVA 的火爆而發展到如今一個囊括了眾多基於 JAVA 語言開源軟體子專案的專案。以至後來,不得不把個別專案從 Jakarta 中獨立出來,成為 Apache軟體基金會的頂級專案,Struts 專案就是其中之一。

  最近,為了避免 SCO 與 UNIX 開源社群之間的發生糾紛降臨在 Apache 軟體基金會(ASF)身上。Apache軟體基金會(ASF)裡面開始採取一些措施,讓眾多的專案進行更多協調的、結構化管理,並保護自己的合法利益,避免一些潛在的合乎法律的侵犯(potential legal attacks)。

  主要成果:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts,Tomcat,Tapestry等等。

Apache Server

  Apache是世界使用排名第一的Web伺服器軟體。它可以執行在幾乎所有廣泛使用的計算機平臺上。

  Apache源於NCSAhttpd伺服器,經過多次修改,成為世界上最流行的Web伺服器軟體之一。Apache取自“a patchy 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的誕生極富有戲劇性。當NCSA WWW伺服器專案停頓後,那些使用NCSA WWW伺服器的人們開始交換他們用於該伺服器的補丁程式,他們也很快認識到成立管理這些補丁程式的論壇是必要的。就這樣,誕生了Apache Group,後來這個團體在NCSA的基礎上建立了Apache。

  Apache web伺服器軟體擁有以下特性:

  支援最新的HTTP/1.1通訊協議

  擁有簡單而強有力的基於檔案的配置過程

  支援通用閘道器介面

  支援基於IP和基於域名的虛擬主機

  支援多種方式的HTTP認證

  整合Perl處理模組

  整合代理伺服器模組

  支援實時監視伺服器狀態和定製伺服器日誌

  支援伺服器端包含指令(SSI)

  支援安全Socket層(SSL)

  提供使用者會話過程的跟蹤

  支援FastCGI

  透過第三方模組可以支援Java Servlets

  如果你準備選擇Web伺服器,毫無疑問Apache是你的最佳選擇。

Apache有名的幾個專案介紹

  HTTP Server

  這個在前面的段落介紹過了,Apache已經是他的代號了

  ActiveMQ

  免費開源由java編寫符合JMS1.1標準的訊息中介軟體。

  另外,它也支援透過除java語言外的語言的使用

  Ant

  這個太出名了。標準的批處理工具。是一套基於java的程式打造工具

  Commons

  一些常用的工具類庫,包括common-pool,dbcp,fileupload,Common-beans等。

  Excalibur

  它的主要產品是一個由java寫成的,名字叫做Fortress(要塞) 的輕量級的可嵌入式反向控制容器。

  iBATIS

  併入的一個專案,是ORM的一個很流行的工具

  Geronimo

  是Apache軟體基金會為了創造一個相容j2ee的容器,而整理出來的一個新成果

  Jakarta

  許多Java子專案的整合,tomcat,ant等就是從這裡孵化出去的。

  James

  是一套用java開發的郵件、新聞組、訊息伺服器。它使用的avalon元件框架。目前支援 SMTP, POP3 和 NNTP 很快也會支援 IMAP

  Logging

  基於java的可靠,快速,擴充套件性強的日誌工具

  Maven

  是一套java開發的工程綜合管理工具。它基於工程物件模型(POM)的理念

  Portals

  門戶產品

  Struts

  一套透過servlets和jsp來搭建web應用的MVC框架

  Tomcat

  用量最大的免費的Java伺服器

轉載於

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7318139/viewspace-1022805/,如需轉載,請註明出處,否則將追究法律責任。

相關文章