溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

詳細講解Apache服務配置

發(fā)布時間:2020-05-08 17:56:20 來源:億速云 閱讀:201 作者:Leah 欄目:建站服務器

今天小編就為大家?guī)硪黄狝pache服務配置的文章。小編覺得挺不錯的,為此分享給大家做個參考。一起跟隨小編過來看看吧。

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

一:httpd.conf

(1) 主服務器部分

1 、ServerName: 定義apache默認主機名,可以是域名或者IP地址

2 、ServerRoot: 用于定義服務器所在的目錄,這個路徑通常是在配置時候由--prefix來指定的

3 、DocumentRoot: 用于指定apache提供頁面服務的根目錄,這個路徑必須是絕對路徑而不是相對路徑,如果有空格還需要用引號括起來

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

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

6 、User 和 Group: 用于定義用于運行apache 子進程的用戶和用戶組

7 、Listen: 用來定義監(jiān)聽apache的端口號

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

9、 ErrorDocument: 自義錯誤頁面信息 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 指令將不會起作用

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

Includes: 允許使用SSI功能

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

Indexes: 開起索引功能,比如一個請求到目錄URLz中沒有有DirectoryIndex 指令指定的索引文件,那么服務器會自動返回一個請求目錄內(nèi)容列表

FollowSymLinks: 允許在當前環(huán)境使用符號連接,但是在Location 容器中會被忽略

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

MultiViews: 用于啟動mod_negotiations模塊提供的多重視圖功能

11 、ServerTokens: OS/Major/Full 影響報錯頁腳信息的詳細程度,一般不建議使用

(2) 容器部分
1 、<IfModule> 容器:容器作用于模塊,他會首先判斷模塊是否載入,然后再決定是否進行處理,即只有當判斷結(jié)果為真時,才會執(zhí)行容器內(nèi)的指令,相反如果為假,則會全部忽略,可以使用<IfModule 模塊名>或者<IfModule !模塊名> 來判斷模塊是否載入

<IfModule mpm_netware_module>
   DirctoryIndex index.html
</IfModule>

如果載入則執(zhí)行
<IfModule !mpm_netware_module>
   DirctoryIndex index.html
</IfModule>

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

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

依據(jù)

<IfDefine Proxy>

LoadModule proxy_module modules/libproxy.so

</IfDefine>

3 <Directory> <DirectoryMatch> 容器:

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

<Directory /var/apache/html>

   Order Deny,Allow

Deny from all

</Directory>

上述例子禁止了對/var/apache/html目錄的訪問權限。任何請求到/var/apache/html都會被拒絕

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

<Directory ~ "^/var/apache[0-9]{2}/html">

   Order Deny,Allow

Allow from all

</Directory>

DirectoryMatch: 和Directory作用類似,只不過他可以直接接受正則匹配 而不需要加一個~符號

<DirectoryMatch "^/var/apache[0-9]{2}/html">

   Order Deny,Allow

Allow from all

</DirectoryMatch>

4 <Files> 和 <FilesMatch>
Files: 只作用于文件,也可以使用通配符和[]以及在正則表達式前面~來使用正則表達式
<Files "^\.css">
   Order Deny,Allow
Allow from All
</Files>

FilesMatch: Files 而不需要加一個~符號
<FilesMatch "\.(gif|jpe?g|png)$">
Order Deny,Allow
Allow from All
</FilesMatch>

5 <Location> 和 <LocationMatch>: 只是對URL進行訪問控制
<Location /cgi>
Order Allow,Deny
Deny from All
</Location>

如果以cgi開頭URL則會被拒絕
另外還可以將URL 請求映射到Apache模塊處理器上,例如使用mod_status模塊:
<Location /server-status>
SetHandler server-status
</Location>

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

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

<Location /var/apache/html>

   Order deny,allow

   Allow from All

</Location>

<Direcotry /var/apache/html>

    Order allow,deny

Allow from All

Deny from www.jons.com

</Direcotry>

上述例子,由于Apache會先處理<Directory>容器,最后處理的<Location>容器會覆蓋之前Directory配置,因此對于www.json.com將是允許被用戶訪問的,如果容器相同則按照字典順序由短到長來處理。

以上就是Apache服務配置的詳細內(nèi)容了,看完之后是否有所收獲呢?如果想了解更多相關內(nèi)容,歡迎關注億速云行業(yè)資訊!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI