快捷登錄,享 免費下載
首頁 > 軟件列表 > Apache
Apache

Apache

Web服務器軟件

軟件語言:
軟件授權:免費軟件
適用系統(tǒng):Windows/Linux
創(chuàng)建時間:2020-12-10
軟件廠商/開發(fā)者信息: -

相關簡介

Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統(tǒng)中運行,由于其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。

Apachehttp server是世界使用排名第一的Web服務器軟件。它可以運行在幾乎所有廣泛使用的計算機平臺上。

Apache源于NCSAhttpd服務器,經過多次修改,成為世界上最流行的Web服務器軟件之一。Apache取自“a patchy server”的讀音,意思是充滿補丁的服務器,因為它是自由軟件,所以不斷有人來為它開發(fā)新的功能、新的特性、修改原來的缺陷。Apache的特點是簡單、速度快、性能穩(wěn)定,并可做代理服務器來使用。

本來它只用于小型或試驗Internet網絡,后來逐步擴充到各種Unix系統(tǒng)中,尤其對Linux的支持相當完美。Apache有多種產品,可以支持SSL技術,支持多個虛擬主機。Apache是以進程為基礎的結構,進程要比線程消耗更多的系統(tǒng)開支,不太適合于多處理器環(huán)境,因此,在一個Apache Web站點擴容時,通常是增加服務器或擴充群集節(jié)點而不是增加處理器。到目前為止Apache仍然是世界上用的最多的Web服務器,市場占有率達60%左右。世界上很多著名的網站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的產物,它的成功之處主要在于它的源代碼開放、有一支開放的開發(fā)隊伍、支持跨平臺的應用(可以運行在幾乎所有的Unix、Windows、Linux系統(tǒng)平臺上)以及它的可移植性等方面。

Apache的誕生極富有戲劇性。當NCSAWWW服務器項目停頓后,那些使用NCSA WWW服務器的人們開始交換他們用于該服務器的補丁程序,他們也很快認識到成立管理這些補丁程序的論壇是必要的。就這樣,誕生了Apache Group,后來這個團體在NCSA的基礎上創(chuàng)建了Apache。

Apacheweb服務器軟件擁有以下特性:[1]

支持最新的HTTP/1.1通信協(xié)議

擁有簡單而強有力的基于文件的配置過程

支持通用網關接口

支持基于IP和基于域名的虛擬主機

支持多種方式的HTTP認證

集成Perl處理模塊

集成代理服務器模塊

支持實時監(jiān)視服務器狀態(tài)和定制服務器日志

支持服務器端包含指令(SSI)

支持安全Socket層(SSL)

提供用戶會話過程的跟蹤

支持FastCGI

通過第三方模塊可以支持Java Servlets

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

版本介紹

2013年07月18日,Apache HTTP Server 2.4.6 發(fā)布。

2013年07月12日,Apache HTTP Server 2.4.5 發(fā)布。

2012年08月18日,Apache HTTP Server 2.4.3 發(fā)布。

2012年08月23日 ,Apache HTTP Server 2.2.23 發(fā)布。

2013年02月25日 ,Apache HTTP Server 2.4.4 發(fā)布。

安裝方法

Apache 的安裝無外乎兩種方式:源代碼安裝和二進制包安裝。這兩種安裝類型各有特色,二進制包安裝不需要編譯,而源代碼安裝則需要先配置編譯再安裝,二進制包安裝在一個固定的位置下,選擇固定的模塊,而源代碼安裝則可以讓你選擇安裝路徑,選擇你想要的模塊。本文主要介紹二進制DEB包安裝方式(此方法只適用于Debian GNU/Linux 及其衍生版)。

系統(tǒng):GNU/Linux Debian/etch

Apache當前版本:2.4.2

1、安裝:

使用以下命令安裝:

tony@tonybox:~$sudo aptitude update aptitude install apache2 apache2-utils

其中apache2-utils提供了我們在配置維護過程中非常有用的一些工具

安裝完成后,可以使用下面的命令啟動Apache 服務:

tony@tonybox:~$ sudo /etc/init.d/apache2 start

停止Apache服務則是:

tony@tonybox:~$ sudo /etc/init.d/apache2 stop

也可以直接用 kill 命令強制殺死apache2進程

tony@tonybox:~$ sudo killall apache2

如有需要, 可以通過rcconf來控制是否在系統(tǒng)啟動是加載Apache 服務

啟動完成后打開瀏覽器, 使用URL http://localhost/ 來訪問已經啟動的Apache服務器, 服務器將會跳轉到 http://localhost/apache2-default/, 向瀏覽器返回一個Apache安裝成功的頁面。

注: 這取決于/etc/apache2/sites-available/default 配置文件中, 是否取消了

RedirectMatch ^/$ /apache2-default/

行的注釋

2、 配置文件說明

在Debian下, 安裝完成后, 軟件包為我們提供的配置文件位于/etc/apache2目錄下:

tony@tonybox:/etc/apache2$ ls -l

total 72

-rw-r--r-- 1 root root 12482 2006-01-16 18:15 apache2.conf

-rw-r--r-- 1 root root 748 2006-01-16 18:05 envvars

-rw-r--r-- 1 root root 268 2006-06-30 13:56 httpd.conf

-rw-r--r-- 1 root root 12441 2006-01-16 18:15 magic

-rw-r--r-- 1 root root 10 2006-06-30 13:56 ports.conf

-rw-r--r-- 1 root root 2266 2006-01-16 18:15 README

drwxr-xr-x 2 root root 4096 2006-01-16 18:15ssl

其中apache2.conf

為apache2服務器的主配置文件, 查看此配置文件, 你會發(fā)現以下內容

# Include module configuration:

Include /etc/apache2/mods-enabled/*.load

Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:

Include /etc/apache2/httpd.conf

# Include ports listing

Include /etc/apache2/ports.conf

# Include generic snippets of statements

Include /etc/apache2/conf.d/[^.#]*

有此可見, apache2 根據配置功能的不同, 對配置文件進行了分割, 這樣更利于管理

conf.d

下為配置文件的附加片斷,默認情況下, 僅提供了 charset 片斷,

tony@tonybox:/etc/apache2/conf.d$ cat charset

AddDefaultCharset UTF-8

如有需要我們可以將默認編碼修改為 GB2312, 即文件的內容為: AddDefaultCharset GB2312

httpd.conf

是個空文件

magic

文件中包含的是有關mod_mime_magic模塊的數據, 一般不需要修改它。

ports.conf

則為服務器監(jiān)聽IP和端口設置的配置文件,

tony@tonybox:/etc/apache2$ cat ports.conf

Listen 80

mods-available

目錄下是一些。conf和。load 文件, 為系統(tǒng)中可以使用的加載各種模塊的配置文件, 而mods-enabled目錄下則是指向這些配置文件的符號連接, 從配置文件apache2.conf 中可以看出, 系統(tǒng)通過mods-enabled目錄來加載模塊, 也就是說, 系統(tǒng)僅通過在此目錄下創(chuàng)建了符號連接的mods-available 目錄下的配置文件來加載模塊。同時系統(tǒng)還提供了兩個命令 a2enmod 和 a2dismod用于維護這些符號連接。這兩個命令由 apache2-common 包提供。命令各式也非常簡單: a2enmod [module] 或 a2dismod [module]

sites-available

目錄下為配置好的站點的配置文件, sites-enabled 目錄下則是指向這些配置文件的符號連接, 系統(tǒng)通過這些符號連接來起用站點 sites-enabled目錄下的符號連接附有一個數字前綴, 如000-default, 這個數字用于決定啟動順序, 數字越小, 啟動優(yōu)先級越高。 系統(tǒng)提供了兩個命令 a2ensite 和 a2dissite 用于維護這些符號連接。這兩個命令由 apache2-common 包提供。

/var/www

默認情況下將要發(fā)布的網頁文件應該置于/var/www目錄下,這一默認值可以同過主配置文件中的DocumentRoot 選項修改。

注意:如果你在是windows下應用Apache服務器,并且已經安裝IIS,那么在安裝Apache時請注意給Apache換個端口來監(jiān)聽比如8080,否則Apache占用的端口會和IIS沖突,造成Apache服務器不能正常啟動。

3.啟用SSL讓apache更安全

apache加密TCP/IP網絡產品的標準是SSL ,對于Internet上普遍使用的超文本傳輸協(xié)議(HTTP)而言,其加密后的協(xié)議稱為 HTTPS,缺省采用443端口。HTTPS數據是加密以后傳輸的,因此能有效保護在網絡上傳輸的個人隱私信息。

對apache配置支持SSL需要經過如下的操作:

第一步:下載所需的軟件并解開到 /usr/local/src 目錄

Apache 1.3.24

Mod_ssl 2.8.8-1.3.24

Openssl-0.9.6c

每個 mod_ssl 的版本和特定的 Apache 版本有關,因此要下載相對應的 mod_ssl 版本。

第二步:編譯和安裝

安裝 OpenSSL 到 /usr/local/ssl: # pwd

/usr/local/src/openssl-0.9.6c

# ./config

# make

# make test

# make install

安裝 mod_ssl,編譯進 Apache 的源碼樹: # pwd

/usr/local/src/mod_ssl-2.8.8-1.3.24

# ./configure --with-apache=/usr/local/src/apache_1.3.24 \

--with-ssl=/usr/local/ssl

以 DSO 方式編譯 Apache: # pwd

/usr/local/src/apache_1.3.24

# ./configure --prefix=/usr/local/apache --enable-rule=SHARED_CORE \

--enable-module=ssl --enable-shared=ssl

# make

創(chuàng)建 SSL 證書,證書需要從商業(yè)的認證權威機構或者從內部的 CA 得到。

執(zhí)行下面的步驟生成證書: # pwd

/usr/local/src/apache_1.3.24

# make certificate TYPE=custom

生成證書時會提示兩遍下面的信息:<> 內為示范數據。

第一遍: Country Name (2-letters)

State or Province Name

Locality Name

Organization Name

Organizational Unit Name

Common Name

Email Address

Certificate Validity <365>

第一遍會產生一個用于測試的 CA。"Common Name" 可以為任意文本。第二遍 Country Name (2-letters)

State or Province Name

Locality Name

Organization Name

Organizational Unit Name

Common Name

Email Address

Certificate Validity <365>

第二遍產生的是實際可用的證書,能被商業(yè)機構或者內部 CA 認證, "Common Name" 為 Web 服務器的主機名。

安裝并運行 Apache # pwd

/usr/local/src/apache_1.3.24

# make install

啟動 Apache ,并測試 # pwd

/usr/local/apache/bin

# ./apachectl stop

# ./apachectl startssl

在瀏覽器上檢查你的站點正常與否即可,至此即可讓apache支持安全的SSL。

在Apache 1.4以后的版本,我們還可以用以下命令完成服務的完美重啟:

#./apachectl graceful

常見問題

apache錯誤日志

這是一個非常普遍的現象,檢查錯誤方法:進入cmd 然后進入 Apache安裝目錄(具體為你自己的安裝目錄)\bin>httpd.exe -w -n “Apache2″ -k start。

發(fā)展過程

Apache 起初由伊利諾伊大學香檳分校的國家超級電腦應用中心(NCSA)開發(fā)。此后,Apache 被開放源代碼團體的成員不斷的發(fā)展和加強。Apache 服務器擁有牢靠可信的美譽,已用在超過半數的因特網站中-特別是幾乎所有最熱門和訪問量最大的網站。

開始,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月的最新統(tǒng)計數據,Apache的市占率已經降為52.65%,8月時又滑落到50.92%。盡管如此,它仍舊是現階段因特網市場上,市占率最高的網頁服務器軟件。

廣的解釋是(也是最顯而易見的):這個名字來自這么一個事實:當Apache在1995年初開發(fā)的時候,它是由當時最流行的HTTP服務器NCSA HTTPd 1.3 的代碼修改而成的,因此是“一個修補的(a patchy)”服務器。然而在服務器官方網站的FAQ中是這么解釋的:“‘Apache’這個名字是為了紀念名為Apache(印地語)的美洲印第安人土著的一支,眾所周知他們擁有高超的作戰(zhàn)策略和無窮的耐性”。無論如何,Apache 2.x 分支不包含任何 NCSA 的代碼。

其他介紹

產品特點

apache日志為什么不記錄百度蜘蛛?這個問題相信很多初學者都基本碰到了,apache日志默認是不記錄百度蜘蛛、谷歌和各大搜索引擎的蜘蛛程序的,但只需要修改一個地方就可以解決這個問題,現在就直接將答案寫出來:

比如曾經有個朋友在百度知道中提問:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{  User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" common      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio  CustomLog "logs/access.log" common 這是我目前的設置,不記住主機名哪位給我提供個范本 記錄訪問明細和主機頭記錄蜘蛛的

1、打開httpd.conf文件找到以下部分:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combinedLogFormat "%h %l %u %t \"%r\" %>s %b" commonLogFormat "%{Referer}i -> %U" referer

LogFormat "%{User-agent}i" agent

具體有關LogFormat的用法請參照:

2、接著我們繼續(xù)向下移動,找到虛擬主機配置段,也就是VirtualHost段,這個是由你自己來配置的。本站的虛擬主機的日志文件是這樣設置的:

CustomLog /var/html/faq/logs/linux520-access.log combined如果你想記錄百度蜘蛛的訪問全稱,就按ru如上部分設置,如果不想記錄百度蜘蛛的頭部分,則如下設置:CustomLog /var/html/faq/logs/linux520-access.log common

代替信息

Apache是目前最流行的Web應用服務器,占據了互聯網應用服務器70%以上的份額。Apache能取得如此成功并不足為奇:它免費、穩(wěn)定且性能卓越;但Apache能取得如此佳績的另一個原因是,當時互聯網剛剛興起時,Apache是第一個可用的Web應用服務器,人們沒有其他的選擇。

不可否認,Apache是一個優(yōu)秀的全能Web服務器,但對于那些需要更強大的Web應用服務器(比如大小、可定制、響應速度、可擴展性等方面)的人而言,Apache明顯不符合他們的要求,尋找Apache的替代者是更好的選擇。

下面所列出的是當前可以替代Apache的幾個熱門Web應用服務器,他們的特點和適用的應用場景各不相同,但都是針對Apache所不夠擅長的某一方面設計的。

1、Lighttpd

最流行的Apache服務器替代者,

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

2、Nginx

Nginx是一個來自俄羅斯的流行的Web應用服務器

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

3、Boa

很多的網站管理員對在硬件配置較低的服務器上使用輕量級的Boa作為Web服務器極其信賴。B

oa是一個單線程的HTTP服務器,這意味著Boa只能依次完成用戶的請求而不會fork新的進程來處理并發(fā)請求。Boa的設計目的是速度和安全,對于運行于單服務器的流行Web站點而言,Boa是一個好的選擇。

4、Jigsaw

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

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

以上所提到的四個Apache Web服務器的替代者只是目前眾多優(yōu)秀應用服務器產品的一部分。

相關開發(fā)

目前比較流行的基于FLASH播放器的在線視頻 使用的是flash播放器+FLV后臺數據文件的形式 即,在網頁上嵌入一個SWF擴展名的flash插件 這個插件在后臺調用其他服務器上的一個SWF文件

比如,網站首頁是http://abc.com/index.html,其上包括一個Flash播放器 這個播放器在后臺引用了http://video.abc.com/test.flv文件 則當訪問網站首頁時候,Flash播放器自動調用并播放遠程的FLV文件  

在網頁上嵌入FLASH播放器可以通過Dreamwaver等網頁制作工具完成 再把做好的網頁放到web服務器就可以了 而后臺的FLV視頻文件,也只需要簡單的上傳到web網站上即可 上傳完畢后,先用瀏覽器訪問http://video.abc.com/test.flv 看看這個文件是否能被瀏覽器正常下載(瀏覽器不支持播放FLV,只能下載) 如果瀏覽器能下載到這個文件,表明FLV視頻文件上傳成功 然后再用前臺的FLASH播放器調用FLV文件的地址,即可制作好視頻 

注意:在Windows2003上,默認禁止擴展名為flv的文件在IIS上被下載 需要修改IIS中站點的MIME類型,加入flv文件方可 而在Linux和apache(Unix平臺最流行的WEB服務器平臺)上,FLV默認即可下載,不需要改動apache(Unix平臺最流行的WEB服務器平臺)的配置[2]

版本列表

  • Apache v2.2.25.0 正式版

    Apache v2.2.25.0 正式版

    Apache是流行的HTTP服務器軟件之一。完全免費,完全源代碼開放??赏ㄟ^簡單的A ...

    軟件大?。?span id="q267nuo" class="gray">5.49 MB 更新時間:2013-07-22
    詳情