Apache服務(wù)配置詳細(xì)講解

apahce 配置指令可以分為兩大塊,核心指令和第三方提供的指令。在apache中,每一個(gè)指令都對(duì)應(yīng)著一個(gè)模塊,而在所有模塊中,最重要的就是core_module,so_module,http_module,以及mpm模塊,他們除了so_moudle以外的其他模塊都不可以關(guān)掉或者禁止.

一:httpd.conf

(1) 主服務(wù)器部分

1 、ServerName: 定義apache默認(rèn)主機(jī)名,可以是域名或者IP地址

2 、ServerRoot: 用于定義服務(wù)器所在的目錄,這個(gè)路徑通常是在配置時(shí)候由–prefix來(lái)指定的

3 、DocumentRoot: 用于指定apache提供頁(yè)面服務(wù)的根目錄,這個(gè)路徑必須是絕對(duì)路徑而不是相對(duì)路徑,如果有空格還需要用引號(hào)括起來(lái)

4 、ServerAdmin: 服務(wù)器出錯(cuò)后給管理員發(fā)郵件的地址

5 、ServerAlias 和 Alias: 都用于映射目錄,只是ServerAlias將映射的目錄識(shí)別為CGI腳本目錄,并將此目錄所有文件都作為CGI腳本對(duì)待。但是Alias只是映射為一個(gè)普通的目錄

6 、User 和 Group: 用于定義用于運(yùn)行apache 子進(jìn)程的用戶和用戶組

7 、Listen: 用來(lái)定義監(jiān)聽(tīng)apache的端口號(hào)

8 、LoadModule 指令:用于加載模塊或者目標(biāo)文件 LoadModule cgi_module modules/mod_cgi.so_module

9、 ErrorDocument: 自義錯(cuò)誤頁(yè)面信息 ErrorDocument 500 “unknown error”? ErrorDocument 404? “/var/server/www/cgi-bin/missing_404.pl” ErrorDocument 402 http://www.nicky.com/error_402.html

10、 options : 決定在哪些目錄中使用那些特性,這些特性如下:

None: option 指令將不會(huì)起作用

ExecCGI: 允許當(dāng)前目錄下執(zhí)行CGI腳本

Includes: 允許使用SSI功能

IncludesNOEXEC: 允許使用SSI功能,但是exec cgi and exec cmd 功能禁用

Indexes: 開(kāi)起索引功能,比如一個(gè)請(qǐng)求到目錄URLz中沒(méi)有有DirectoryIndex 指令指定的索引文件,那么服務(wù)器會(huì)自動(dòng)返回一個(gè)請(qǐng)求目錄內(nèi)容列表

FollowSymLinks: 允許在當(dāng)前環(huán)境使用符號(hào)連接,但是在location 容器中會(huì)被忽略

All: 使用除MultiViews之外的所有特性,也是options的默認(rèn)參數(shù)

MultiViews: 用于啟動(dòng)mod_negotiations模塊提供的多重視圖功能

11 、ServerTokens: OS/Major/Full 影響報(bào)錯(cuò)頁(yè)腳信息的詳細(xì)程度,一般不建議使用

(2) 容器部分
1 、 容器:容器作用于模塊,他會(huì)首先判斷模塊是否載入,然后再?zèng)Q定是否進(jìn)行處理,即只有當(dāng)判斷結(jié)果為真時(shí),才會(huì)執(zhí)行容器內(nèi)的指令,相反如果為假,則會(huì)全部忽略,可以使用或者 來(lái)判斷模塊是否載入


? ? DirctoryIndex index.html?

如果載入則執(zhí)行

? ? DirctoryIndex index.html?

如果不載入則執(zhí)行

2 容器:封裝一組條件為真時(shí)才生效的指令,作用于 server config, virtual host, directory, .htaccess ,和IfModule區(qū)別在于,他是以模塊是否加載作為判斷,但是IfDefine是以條件為判斷

依據(jù)

LoadModule proxy_module modules/libproxy.so

3 容器:

Directory: 讓它封裝的指令在它的指定的目錄或者他的子目錄起作用,這個(gè)目錄必須是一個(gè)完整的路徑,當(dāng)然你也可以使用通配符* ?匹配目錄,也考慮利用使用[]來(lái)確定字符范圍,不過(guò)不論是哪一種都不能匹配/

? ? Order Deny,Allow

Deny from all

上述例子禁止了對(duì)/var/apache/html目錄的訪問(wèn)權(quán)限。任何請(qǐng)求到/var/apache/html都會(huì)被拒絕

如果希望目錄使用正則表達(dá)式,那么需要在前面加一個(gè)~

? ? Order Deny,Allow

Allow from all

DirectoryMatch: 和Directory作用類似,只不過(guò)他可以直接接受正則匹配 而不需要加一個(gè)~符號(hào)

? ? Order Deny,Allow

Allow from all

4
Files: 只作用于文件,也可以使用通配符和[]以及在正則表達(dá)式前面~來(lái)使用正則表達(dá)式

? ? Order Deny,Allow
Allow from All

FilesMatch: Files 而不需要加一個(gè)~符號(hào)

Order Deny,Allow
Allow from All

5 : 只是對(duì)URL進(jìn)行訪問(wèn)控制

Order Allow,Deny
Deny from All

如果以cgi開(kāi)頭URL則會(huì)被拒絕
另外還可以將URL 請(qǐng)求映射到Apache模塊處理器上,例如使用mod_status模塊:

SetHandler server-status

如果使用上面的配置。那么訪問(wèn)/server-status,apache會(huì)將連接交給mod_status模塊處理,并返回一個(gè)Apache服務(wù)器運(yùn)行狀態(tài)頁(yè)面

容器的處理順序問(wèn)題
Apache 會(huì)優(yōu)先處理Directory 容器(但是不會(huì)處理帶有正則表達(dá)式的Directory和.htaccess,)接著處理Files 和 FilesMatch 容器,再接著就是處理Location 和LocationMatch容器

? ? Order deny,allow

? ? Allow from All

? ? ?Order allow,deny

Allow from All

Deny from www.jons.com

上述例子,由于Apache會(huì)先處理容器,最后處理的容器會(huì)覆蓋之前Directory配置,因此對(duì)于www.json.com將是允許被用戶訪問(wèn)的,如果容器相同則按照字典順序由短到長(zhǎng)來(lái)處理。

更多相關(guān)問(wèn)題請(qǐng)?jiān)L問(wèn)php中文網(wǎng):linux視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊13 分享