Apache HTTP Server詳解

Apache HTTP Server(簡稱Apache),中文名:阿帕奇,是Apache軟件基金會(Apache軟件基金會(ASF)是一個非營利性組織,它爲Apache社區的開源軟件項目提供支持)的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。(當Apache在1995年初開發的時候,它是由當時最流行的HTTP服務器NCSA HTTP1.3的代碼修改而成的,因此是“一個修補的(a patchy)”服務器。)

Apache支持許多特性,大部分通過編譯的模塊實現。這些特性從服務器端的編程語言支持到身份認證方案。一些通用的語言接口支持Perl,Python, Tcl, 和 PHP。流行的認證模塊包括 mod_access, mod_auth 和 mod_digest(digest是摘要的意思,mod是module的簡寫)。其他的例子有 SSL (Secure Socket Layer 安全套接層,是基於HTTPS下的一個協議加密層)和 TLS (Transport Layer Security,傳輸層安全協議)支持 (mod_ssl), 代理服務器 (proxy) 模塊,很有用的URL重寫(URL重寫就是首先獲得一個進入的URL請求然後把它重新寫成網站可以處理的另一個URL的過程)(由 mod_rewrite 實現),定製日誌文件 (mod_log_config),以及過濾支持(mod_include 和 mod_ext_filter)。Apache日誌可以通過網頁瀏覽器使用免費的腳本AWStats或Visitors來進行分析。

Apache目前已經演變成了“LAMP”,即Linux、Apache、MySQL和PHP的聯合體。這是一個開放源代碼軟件項目,已經對微軟的“.NET”戰略構成嚴重威脅。

在操作系統中,httpd程序作爲一個守護進程運行,在後臺不斷處理請求。httpd主進程以root用戶的權限運行,而它的子進程將以一個較低權限的用戶運行。httpd被調用後第一件要做的事情就是找到並讀取配置文件httpd.conf。

Apache是以進程爲基礎的結構,進程要比線程消耗更多的系統開支,不太適合於多處理器環境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充羣集節點而不是增加處理器

Apache替代品

1、Lighttpd

最流行的Apache服務器替代者,Lighttpd是一個單線程針對大量持續連接做出專門優化的Web服務器(這正是多數高流量網站和應用程序需要的)。衆多的流行Web站點選擇Lighttpd,包括Youtube、SourceForge和維基百科。Lighttpd支持FastCGI、HTTP服務器端壓縮、mod-rewrite和其他衆多有用的功能。儘管Lighttpd擁有Apache的絕大多數功能,但它仍然保持輕量級(僅1MB)並且可以與Apache使用相同的配置。

2、Nginx

Nginx是一個來自俄羅斯的流行的Web應用服務器,它被應用於大量的俄羅斯的高併發站點,俄羅斯的搜索引擎網站Rambler就是基於Nginx構建的。Nginx對靜態頁面的支持相當出色,輕量且免費。Nginx不支持CGI,但是支持更靈活的FastCGI。PHP5.2及之前的版本比較多的是使用PHP-FPM來管理PHP FastCGI進程。PHP-FPM使用給PHP源碼打補丁後編譯的方式讓新手多少有些難上手,但從PHP 5.3.2開始內置PHP-FPM,只需編譯PHP時啓用PHP-FPM。

3、kangle

kangle web服務器(簡稱:kangle)是一款跨平臺、功能強大、安全穩定、易操作的高性能web服務器反向代理服務器軟件。除此:kangle也是一款專爲做虛擬主機研發的web服務器。實現虛擬主機獨立進程、獨立身份運行。用戶之間安全隔離,一個用戶出問題不影響其他用戶。安全支持php、asp、asp·net、java、ruby等多種動態開發語言。

4、Boa

很多的網站管理員對在硬件配置較低的服務器上使用輕量級的Boa作爲Web服務器極其信賴。Boa是一個單線程的HTTP服務器,這意味着Boa只能依次完成用戶的請求而不會fork新的進程來處理併發請求。Boa的設計目的是速度和安全,對於運行於單服務器的流行Web站點而言,Boa是一個好的選擇。

5、Jigsaw

Jigsaw是W3C推出的開源的Web服務器平臺,使用Java語言編寫,可以安裝在有Java運行環境的系統上。做爲W3C(World Wide Web Consortium)開發的服務器產品,其作用主要是對新技術的實現做一個例示,而非一個全功能的商業服務器產品。

不過就Jigsaw 2.0版本而言,它的功能還是超過了Web服務器的平均水平。最重要的是,它體現了未來HTTP協議和基於對象的Web服務器技術的發展。如果你希望你的平臺支持所有下一代技術,Jigsaw是一個好的選擇。

以上所提到的四個Apache Web服務器的替代者只是衆多優秀應用服務器產品的一部分。

apache2.2目錄結構

              -|-bin      ->binary,二進制文件,是apache的主程序及控制檯等可執行程序的目錄

              -|-cgi-bin ->公共網管接口方式存放的目錄

              -|-conf     ->config的縮寫,配置文件目錄

              -|-|-extra         ->輔配置文件,子配置

              -|-|-original       ->原始的配置文件,可以在修改失敗後來恢復使用

              -|-|-httpd.conf   ->主配置文件,引入extra裏面的各子配置文件

              -|-error      -> 存入一些請求錯誤時,所給客戶迴應的信息

              -|-htdocs   ->host docments,網頁的主目錄

              -|-icons      ->小圖標

              -|-logs        ->日誌信息,其中error.log是錯誤日誌信息,對我們調試有幫助

              -|-modules ->模塊目錄,存放各種功能模塊

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章