Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由於其多平台和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠並且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。[2]
Apache 的進程名字是 httpd
Apacheweb服務器軟件擁有以下特性:
Apache Server配置界面
Apache Server配置界面
1.支持最新的HTTP/1.1通信協議
2.擁有簡單而強有力的基於文件的配置過程
3.支持通用網關接口
4.支持基於IP和基於域名的虛擬主機
5.支持多種方式的HTTP認證
6.集成Perl處理模塊
7.集成代理服務器模塊
8.支持實時監視服務器狀態和定制服務器日志
9.支持服務器端包含指令(SSI)
10.支持安全Socket層(SSL)
11.提供用戶會話過程的跟蹤
12.支持FastCGI
13.通過第三方模塊可以支持JavaServlets
相關模塊
1.SSO Module - LemonLDAP[1]
LemonLdap 是 Apache 的一個實現了 Web SSO 的模塊,可處理超過 20 萬的用戶。
2.並發限制模塊 - limitipconn
limitipconn 是一個 Apache 的模塊,用來限制每個 IP 的並發連接數。支持 Apache 1.x 和 2.x。
3.日志監控模塊
Apache Live Log 是一個 Perl 編寫的模塊,可以在瀏覽器上直接實時的通過 Ajax 技術瀏覽和監控 Apache 的 日志文件。
4.負載均衡模塊
mod_backhand 是一個Apache 的負載平衡模塊 。它定義了每個請求的HTTP重定向在一個異構的Apache服務器群集。每個請求的處理,並貫穿了一套“候選人的職能” ,以確定哪些服務器是最適合的回應。請求然后代理到該服務器。設施已到位,讓你寫您自己的動態加載決策算法。一切有關的要求和當前可用的資源可用於決策過 程。
5.圖像處理模塊
mod_gfx 是一個對圖像進行即時處理的 Apache 模塊,提供很多靈活的接口,包括:
Resizing
Resampling
Watermarking
Cropping
以后還將添加如下功能:
Add Text
Rotate
Draw Polygons
6. 壓縮模塊
mod-gzip-disk 是一個使用磁盤進行存儲預壓縮頁面的 Apache 模塊,與 mod-gzip 不同的是不需要每次請求的時候重新壓縮。
使用方法:
gunzip -c mod_gzip_disk-0.5.tar.gz | tar -xvpf -
cd mod_gzip_disk
sudo make module
7. 音樂模塊
mod_musicindex 是一個 Apache 用來處理音頻文件的模塊,類似 Perl 的 Apache::MP3,支持音頻格式包括:MP3, Ogg Vorbis, FLAC, or MP4 / AAC ,可根據不同的音頻屬性進行排序列表、在線播放、下載、構建播放列表和搜索等,提供 RSS 和 Podcast 輸出,支持多 CSS 和包下載。
8.LDAP 認證模塊
LDAP 是輕量級目錄訪問協議,基於 X.500 標准,但更簡單,並可根據需要進行定制。mod_psldap 是 Apache 用來執行 LDAP 認證和授權的模塊。同時可通過 Web 界面進行簡單的 LDAP 管理
9.帶寬限制模塊
mod_cband 是一個用來限制請求占用帶寬的 Apache 模塊。
10.CGI V8 引擎包
v8cgi 是一個很小的 C ++ 和 JS 文件集合,允許開發者在服務器端使用 JS 的模塊,基本功能包括:IO, GD, MySQL, Sockets, templates, FastCGI and Apache module.
安裝/配置/使用
apache 的安裝無外乎兩種方式:源代碼安裝和二進制包安裝。這兩種安裝類型各有特色,二進制包安裝不需要編譯,而源代碼安裝則需要先配置編譯再安裝,二進制包安裝在一個固定的位置下,選擇固定的模塊,而源代碼安裝則可以讓你選擇安裝路徑,選擇你想要的模塊。本文主要介紹二進制DEB包安裝方式(此方法只適用於Debian GNU/Linux 及其衍生版)。
系統:GNU/Linux Debian/etch
Apache當前版本: 2.4.2
1、安裝:
使用以下命令安裝:
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服務器的主配置文件, 查看此配置文件, 你會發現以下內容
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
則為服務器監聽IP和端口設置的配置文件,
tony@tonybox:/etc/apache2$ cat ports.conf
Listen 80
mods-available
目錄下是一些。conf和。load 文件, 為系統中可以使用的加載各種模塊的配置文件, 而mods-enabled目錄下則是指向這些配置文件的符號連接, 從配置文件apache2.conf 中可以看出, 系統通過mods-enabled目錄來加載模塊, 也就是說, 系統僅通過在此目錄下創建了符號連接的mods-available 目錄下的配置文件來加載模塊。同時系統還提供了兩個命令 a2enmod 和 a2dismod用於維護這些符號連接。這兩個命令由 apache2-common 包提供。命令各式也非常簡單: a2enmod [module] 或 a2dismod [module]
sites-available
目錄下為配置好的站點的配置文件, sites-enabled 目錄下則是指向這些配置文件的符號連接, 系統通過這些符號連接來起用站點 sites-enabled目錄下的符號連接附有一個數字前綴, 如000-default, 這個數字用於決定啟動順序, 數字越小, 啟動優先級越高。 系統提供了兩個命令 a2ensite 和 a2dissite 用於維護這些符號連接。這兩個命令由 apache2-common 包提供。
/var/www
默認情況下將要發布的網頁文件應該置於/var/www目錄下,這一默認值可以同過主配置文件中的DocumentRoot 選項修改。
注意:如果你在是windows下應用Apache服務器,並且已經安裝IIS,那么在安裝Apache時請注意給Apache換個端口來監聽比如8080,否則Apache占用的端口會和IIS沖突,造成Apache服務器不能正常啟動。
3.啟用SSL讓apache更安全
apache加密TCP/IP網絡產品的標准是SSL ,對於Internet上普遍使用的超文本傳輸協議(HTTP)而言,其加密后的協議稱為 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
創建 SSL 證書,證書需要從商業的認證權威機構或者從內部的 CA 得到。
執行下面的步驟生成證書: # 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>
第二遍產生的是實際可用的證書,能被商業機構或者內部 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以后的版本,我們還可以用以下命令完成服務的完美重啟: