Apache (http server)的詳細介紹
寫的很詳細,值得收藏,有時間就看看。。
[@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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Http Module 的詳細介紹HTTP
- 詳細介紹php和apache的關係和作用PHPApache
- Kafka詳細介紹Kafka
- javascript this詳細介紹JavaScript
- ApplicationContext 詳細介紹APPContext
- JDBC 詳細介紹JDBC
- Ifconfig詳細介紹
- Git詳細介紹Git
- 註解的詳細介紹
- Spring bean詳細介紹SpringBean
- python字典詳細介紹Python
- Nacos 介面詳細介紹
- SOLIDWORKS API詳細介紹SolidAPI
- Go Channel 詳細介紹Go
- spring @component 的作用詳細介紹Spring
- PHP 的Closure的bind 詳細介紹PHP
- Flutter系列(一)——詳細介紹Flutter
- Nginx服務詳細介紹Nginx
- LVM詳細介紹及建立LVM
- Webpack 打包 Javascript 詳細介紹WebJavaScript
- 【SCN】Oracle SCN 詳細介紹Oracle
- Java異常詳細介紹Java
- JavaScript FormData的詳細介紹及使用JavaScriptORM
- BN(Batch Normalization)層的詳細介紹BATORM
- rqt的安裝及詳細介紹QT
- 超詳細的介紹Python語句Python
- 『動善時』JMeter基礎 — 47、JMeter的HTTP代理伺服器詳細介紹JMeterHTTP伺服器
- Dart語言詳解(一)——詳細介紹Dart
- pyhanlp 文字聚類詳細介紹HanLP聚類
- TreeViewTemplate移動元件詳細介紹View元件
- oracle 大頁配置詳細介紹Oracle
- Python安裝PyMongo的方法詳細介紹PythonGo
- Cypress系列(2)- Cypress 框架的詳細介紹框架
- tensorboard 視覺化的最詳細介紹ORB視覺化
- AES 加密演算法的詳細介紹加密演算法
- web server apache tomcat11-01-官方文件入門介紹WebServerApacheTomcat
- Java開源的混淆器 Proguard詳細介紹Java
- 從 RGB 到 HSV 的轉換詳細介紹
- 《蝙蝠的“自我修養”》專案詳細介紹