/etc/httpd/conf/httpd.conf文件中默認配置
1、ServerRoot “/etc/httpd”設置服務器所在的目錄,一般來說會包含conf/和logs/子目錄。其他的配置文件的相對路徑都是基於此目錄
2、PidFile “/run/httpd.pid”設置服務器用於記錄父進程(監控進程)PID的文件,在httpd服務啓動之後會在/etc/httpd/run文件夾中生成一個“httpd.pid”的文件
3、Timeout 60 設置了Apache等待以下三種時間的時間長度:
(1)接受一個GET請求耗費的總時間
(2)POST或者PUT請求時,接受兩個TCP包之間間隔的時間
(3)應答時TCP包傳輸兩個ACK包之間的時間
意思大概是隻要服務器在不超過60秒的時間內和客戶端進行通信,連接就不會斷開,這個時間應該是傳輸數據的間隔時間。
4、keepalive off 是否啓用HTTP的持久連接
5、MaxKeepAliveRequests 100 一個持久連接紅允許的最大請求數量,前提是要先啓用持久連接,並且當這個值設爲0時,表示不限制請求的數目。
6、KeepAliveTimeout 15 持久連接中服務器在兩次請求之間等待的秒數。Apache在關閉持久連接前等待下一個請求的秒數。一旦收到一個請求,超時值將會被設置爲Timeout
指令指定的秒數。在服務器併發訪問較多的時候應該將這個值設置的小一些,因爲時間越長與空閒客戶端連接的進程也會越多。
7、prefork工作模式---->由一個父進程創建多個子進程,父進程負責管理子進程和創建套接字等,子進程負責響應和處理請求。
<IfModule prefork.c>
StartServers 8---------->設置服務器啓動時建立的子進程數量,一般不進行調整
MinSpareServers 5--------->設置空閒子進程的最小數量
MaxSpareServers 20------->設置空閒子進程的最大數量,如果當前空閒子進程超出,父進程會殺死 多餘空閒子進程
ServerLimit 256---------->設置MaxClients最大允許配置的數值,服務器允許配置的進程上限。
MaxClients 256-------->設置了允許同時處理的最大接入請求數量
MaxRequestsPerChild 4000----->設置每個子進程在其生存期內允許處理的最大請求數,當子進程處理的請求多於4000時,子進程會結束,如果設置爲0則子進程永遠不會結束
</IfModule>
8、worker工作模式---->多進程多線程模型:一個線程響應一個請求,主進程:管理子進程;創建套接字;接收用戶請求,並派發給某子進程處理,子進程:負責管理線程,線程:處理並響應請求.
<IfModule worker.c>
StartServers 4--------------->設置服務器啓動時建立的子進程數量
MaxClients 300
MinSpareThreads 25---------->最小空閒線程
MaxSpareThreads 75---------->最大空閒線程
ThreadsPerChild 25----------->設置每個子進程建立的線程數
MaxRequestsPerChild 0
</IfModule>
9、Listen 80 ---->服務器監聽的ip地址和端口,可以有多個監聽的ip地址和端口
可以加上IP:如Listen 190.168.1.1:80 Listen 192.168.1.125:8000
10、ServerAdmin --------->管理員郵箱
11、UseCanonicalName Off------>功能關閉,服務器利用客戶端請求中的ServerName和端口構建URL(不知道是不是這個意思)
12、DocumentRoot “/var/www/html”-------->資源根目錄
13、<Directory "dirPath"></Direcyory> 用於封裝一組指令,使之僅對文空間中的某個目錄及其子目錄生效
14、<Files filename></Files>------>提供基於文件名的訪問控制
15、TypesConfig /etc/mime.types ----->MIME類型配置文件的位置
16、HostnameLookups off|on|double ----->啓用對客戶端的DNS查找,在高併發的情況下最好關閉,因爲DNS解析需要耗費資源。
17、日誌類型---->訪問日誌和錯誤日誌
通用日誌格式:LogFormat "%h %l %u %t \"%r\" %>s %b" common
訪問日誌中截取的一個組合日誌記錄:
127.0.0.1 - tom [12/Jul/2016:22:46:21 +0800] "GET /admin/admin.html HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"
(127.0.0.1)%h:發送請求到服務器的客戶的IP地址
%l:由客戶端identd進程判斷的身份,在IndetityCheck 爲ON時,Apache纔會獲得這個值,否則爲“-”
(tom)%u:訪問該網頁的標識(userid),在通過用戶認證的時候顯示用戶名,未通過則顯示401,如果網站沒有設置密碼保護,此項爲“-”
[12/Jul/2016:22:46:21 +0800]---->[日/月/年:時:分:秒 時區]
GET /admin/admin.html HTTP/1.1----->客戶端發出的包含信息的請求行
304----->狀態碼
- 返回給客戶端 不包括響應頭的字節數,因爲失敗,所以沒有返回有效字節數
“-”----->\"%{Referer}i\" Referer請求頭,指明該請求是從哪個網頁提交的
\"%{User-Agent}i\"---->Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101--->客戶端瀏覽器識別信息
18、Alias------>可以將文檔指向非DocumentRoot的文件夾
19、NameVirtualHost----->爲一個基於域名的虛擬主機指定一個IP和端口