apache配置檔案解析

2021-09-24 04:59:49 字數 3294 閱讀 1989

配置檔案解析

apache配置檔案預設位於/usr/local/apache2/conf目錄下,在該目錄下最主要的配置檔案是httpd.conf檔案,還有一些位於extra目錄下的附加配置檔案。此外original目錄中存有所有這些配置檔案的副本。apache http sever主配置檔案主要由指令以及容器組成,容器使用《容器名稱》開始,serverroot指令設定apache軟體的安裝主目錄,如果採用原始碼安裝則預設路徑為/usr/local/apache2。

apache http server的特色之一就是她的功能多數是以模組方式載入的,但如果希望apache動態載入模組,需要在編譯apache時通過–enable-so將mod_so以靜態方式編譯到apache核心模組中,loadmodule指令的作用就是載入模組。語法格式為loadmodule 模組 模組檔名稱,模組檔案一般位於serverroot指定目錄下的modules目錄中。

loadfile指令功能類似於loadmodule,區別在於loadfile可以通過絕對路徑載入modules目錄以為的模組檔案。

servername指令設定伺服器本機的主機名稱以及埠,對於url位址的重定向很重要。

該指令設定web服務對客戶端開放可見的文件根目錄,也就是客戶端訪問**的根路徑,預設為/usr/local/apache2/htdocs。

errorlog定位伺服器錯誤日誌的位置,預設使用相對路徑,為serverroot指定目錄下的」logs/error_log」檔案。

設定錯誤日誌的格式,apache http server事先定義了很多格式字串 可以直接引用。

該指令設定客戶端的訪問日誌檔名以及日誌格式,預設為」logs/access_log」,語法格式為customlog 檔名 格式。

描述使用者日誌檔案格式,可以直接使用apache預先設定的格式字串,一般我們會為logformat指令設定的日誌格式建立別名,然後可以再通過customlog指令呼叫該日誌格式別名。

include指令允許apache在主配置檔案中載入其他的配置檔案,該指令語法比較簡單,inclde指令後直接跟上其他附加配置檔案路徑即可。

為特定目錄設定選項,語法格式為options [+|-]選項 [[+|-]選項]。選項可以設定為none,代表不啟用任何額外功能,也可以使用如下常用選項。

all:開啟出來multiviews之外的所有選項。

execcgi:允許執行cgi指令碼。

followsymlinks:允許目錄下通過鏈結檔案鏈結到目錄外的檔案或目錄。

indexes:如果與url對應的目錄下,沒有directoryindex指定的首頁文件,則apache

將會把當前目錄的所有檔案索引出來。

控制預設訪問狀態以及allow與deny次序,如果使用order deny,allow,則先檢查拒絕,沒有拒絕則預設允許。如何使用order allow,deny,則先檢查允許,沒有允許則預設拒絕。

以下為具體案例:

order deny,allow

deny from all

先檢查拒絕規則,再檢查允許規則,預設為允許。這裡deny from all代表拒絕所有,所以最終結果為拒絕所有。

order allow,deny

allow from all

先檢查允許規則,再檢查拒絕規則,allow from all代表允許所有,所以最終結果為允許所有。

order allow,deny

allow from 192.168.0.1

先檢查允許規則時允許192.168.0.1,其餘為預設值,預設為拒絕所有,最終除192.168.0.1外拒絕所有。

order allow,deny

allow from 192.168.0.1

deny from all

先檢查允許規則時允許192.168.0.1訪問,但檢查拒絕規則時為拒絕所有,而192.168.0.1也包含在all之中,當allow與deny有衝突時,以order最後的規則覆蓋其他的規則,本案例將使用deny規則覆蓋allow規則,最終效果為拒絕所有人訪問。

order deny,allow

deny from all

allow from 192.168.0.1

先檢查拒絕規則,再檢查允許規則,拒絕規則為拒絕所有,允許規則為允許192.168.0.1,拒絕與允許規則有衝突的部分本案例將採用allow的規則,最終本案例可以實現僅允許192.168.0.1訪問,其他任何主機均無法訪問apache服務。

ifdefine容器封裝的指令僅在啟動apache時測試條件為真才會被處理,測試條件需要在啟動apache時通過httpd -d定義。語法格式為指令。具體案例如下:

loadmodule mem_cache_module modules/mod_mem_cache.so

< /ifdefine>

< ifdefine usecache>

loadmodule cache_module modules/mod_ cache.so

< /ifdefine>

這樣的配置可以讓管理員採用多種配置方式啟動apache,啟動apache時如果使用了httpd -dusecache -dmemcache,則apache將載入mod_mem_cache與mod_cache模組,如果沒有使用-d指定任何引數,則apache將不載入這些模組。

使用ifmodule容器可以封裝僅在條件滿足時才會處理的指令,根據指定的模組是否載入決定條件是否滿足,語法格式

以上配置說明,僅在apache載入了unixd_module模組後user daemon與group daemon才會被apache處理。該容器內的指令僅應用於特定的檔案系統目錄、子目錄以及目錄下的內容,語法格式為指令。路徑可以使用~匹配正規表示式。具體案例如下:

options indexs followsymlinks

< /directory>

< directory ~ 「^/www/[0-9]」>

allowoverride none

< /directory>

以上案例中opions index followsymlins僅對/usr/local/apache2/htdocs目錄有效,allowoverride none僅對所有/www目錄下包含三個數字的子目錄有效。

directorymatch類似於directory,但可以直接使用正規表示式匹配,而無需像directory一樣使用~符號才可以匹配。

該容器類似於directory容器,但files容器內的指令僅應用於特定的檔案,語法格式如下:location容器內定義的指令僅對特定的url有效,語法格式為指令,如果需要使用正規表示式匹配url可以使用~符號。

locationmatch僅使用正規表示式匹配url,等同於使用了~符號匹配的location。

Apache 主配置檔案大致解析

1.軟體的安裝 yum install httpd2.開啟服務 3.檢視埠是否開啟 netstat ntl4.解析配置檔案 servertokens prod full 該引數設定http頭部返回的apache版本資訊 引數 prod 僅軟體名稱,例如 apache major 包括主版本號,例如 ...

Apache 配置檔案

http.conf是apache的配置檔案這個是讓.txt字尾的檔案可執行php,如果txt檔案中包括php 則該檔案和.php字尾的檔案完全 一樣,都成為動態檔案,在伺服器端處理。如果在httpd.conf中不設定此語句,則以字元的形式直接讀取txt檔案中的內容,不作php處理。2 loadmod...

apache配置檔案詳解

配置檔案詳解 檔案位置 serverroot etc httpd 伺服器的根路徑,改檔案中所有涉及到的路徑的根都是相對它而言的。listen 80 監聽的埠 include conf.modules.d conf 包含輔助配置檔案目錄下的所有以.conf結尾的 檔案 etc httpd conf.m...