一、使用rpm -ql httpd可以檢視rpm包安裝的httpd檔案及其路徑
1、配置檔案:
/etc/httpd/conf/httpd.conf #主配置檔案
/etc/httpd/conf.d/welcome.conf #無首頁所指定的連結檔案
2、服務腳本:
/etc/rc.d/init.d/httpd #服務起停腳本
/etc/sysconfig/httpd #腳本配置檔案
3、子產品目錄:
/usr/lib64/httpd/modules:存放了各種以.so結尾的httpd所需的子產品
/etc/httpd/modules:連結檔案,連結到上面的子產品目錄
4、主程式:httpd支援三種MPM(多路處理子產品),也就是并發響應模式,同時且隻能有一個MPM工作
/usr/sbin/httpd:基于prefork,核心會為每一個使用者請求配置設定一個程序,性能較低,但是最穩定可靠,依賴于prefork.c子產品
/usr/sbin/httpd.worker:基于worker,核心為每個使用者請求配置設定一個線程,多個線程由一個程序管理,減輕了多個程序間切換所消耗的cpu時間,依賴于worker.c子產品
/usr/sbin/httpd.event:httpd2.4以上支援,低于2.4版本的隻為實驗狀态,基于event,支援一個線程響應多個使用者的請求,依賴于event.c子產品
5、日志檔案目錄:
/var/log/httpd/access_log:通路日志
/var/log/httpd/error_log:錯誤日志
6、站點文檔根目錄:
/var/www/html/:預設
二、httpd配置檔案說明
httpd.conf配置檔案由3部分組成,分别為全局環境配置、主服務配置以及虛拟主機配置,其中主服務配置與虛拟主機不能同時使用
1、全局環境配置項
Timeout:接送和發送資源逾時時間
KeepAlive:是否開啟保持會話連接配接功能,開啟後可避免同一使用者請求資源時重複進行TCP三向交握四次斷開
MaxkeepAliveRequests:同一使用者端保持會話最多允許請求的資源連結次數,超過次數會斷開重新連接配接
KeepAliveTimeout:保持會話連接配接後允許的最大逾時時間,此時間未有資源請求會斷開保持的會話
基于prefork的使用者會話處理方式:
StartServers:預設開啟等待使用者連接配接的程序數
MinSpareServers:最少等待使用者連接配接的空閑程序數
MaxSpareServers:最多等待使用者連接配接的空閑程序,超過則殺死多餘空閑程序
ServerLimit:限制最大使用者請求會話連接配接數
MaxClients:最大響應使用者會話的程序數,一般與ServerLimit相等
MaxRequestsPerChild:一個程序生存期間能夠處理的會話數,超過則關閉此程序
基于worker.c的使用者會話處理方式:
StarServers:預設開啟的等待使用者連接配接的程序數
MaxClients:能夠同時處理的使用者請求會話連接配接
MinSpareThreads:最小空閑線程數
MaxSpareThreads:最大空閑線程數
ThreadsPerChild:每個程序下的線程數
MaxRequestsPerChild:每個程序生存期間能夠處理的最大會話數,0為不限制
監聽端口,預設為監聽伺服器所有網卡的80端口
Listen IP:PORT的方式可以指定監聽固定IP及端口
Listen可重複指定多次
DSO機制裝載的子產品
格式為:LoadModule 子產品名 子產品路徑
httpd -D DUMP_MODULES指令可檢視裝載的子產品
指定運作httpd的使用者群組,預設為apache使用者和apache組
為安全起見,請盡量避免使用系統使用者與root使用者
2、主服務配置段
指定伺服器主機名,如果沒有指定httpd會嘗試用主機名解析IP,如解析不到會用主機名代替
指定網站根目錄,預設為/var/www/html
站點路徑通路控制:
Directory:基于本地檔案系統路徑做通路控制
Location:基于URL通路路徑做通路控制
Options:可以在選項後加“-”關閉此功能
Indexes:當通路的路徑下無預設的首頁面,将所有資源以清單的形式呈現給使用者,非常危險
FollowSymLinks:支援符号連結通路資源
AllowOverride:支援在每個頁面目錄下建立.htaccess使用者實作對此目錄中資源通路時的控制功能
Order,Deny,Allow:基于IP做通路控制
DirectoryIndex:定義預設的首頁,優先級由左到右
ErrorLog:錯誤日志檔案路徑
LogLevel:錯誤日志記錄級别,高于此級别的報警才會記錄日志
LogFormat:通路日志的記錄格式
CustomLog:通路日志路徑及所用格式名
%h: 用戶端位址
%l: 遠端登入名,通常為-
%u: 認證時輸入使用者名,沒有認證時為-
%t: 伺服器收到 使用者請求時的時間
%r:請求報名的起始行
%>s: 響應狀态碼
%b: 響應封包的長度,機關是位元組
%{HEADER_NAME}i: 記錄指定首部對應的值
Alias:路徑别名,實作URL路徑的映射,進而通路的資源不再依賴于站點根目錄
ScriptAlias:CGI腳本路徑别名
AddDefaultCharset:預設字元集
對網站基于使用者認證做通路控制:
AllowOverride:
AuthConfig啟用認證
AuthType:認證類型
Basic:基本認證,明文傳輸,常用
digest:摘要認證,密文傳輸,某些浏覽器不支援
AuthName:認證顯示資訊
AuthBasicProvider:基本認證模式,預設為file格式
AuthUserFile:認證檔案路徑
Require:允許通路的認證使用者