天天看點

httpd配置檔案詳解(上)

一、使用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子產品

httpd配置檔案詳解(上)

    5、日志檔案目錄:

        /var/log/httpd/access_log:通路日志

        /var/log/httpd/error_log:錯誤日志

    6、站點文檔根目錄:

        /var/www/html/:預設

二、httpd配置檔案說明

        httpd.conf配置檔案由3部分組成,分别為全局環境配置、主服務配置以及虛拟主機配置,其中主服務配置與虛拟主機不能同時使用

httpd配置檔案詳解(上)

    1、全局環境配置項

httpd配置檔案詳解(上)

        Timeout:接送和發送資源逾時時間

        KeepAlive:是否開啟保持會話連接配接功能,開啟後可避免同一使用者請求資源時重複進行TCP三向交握四次斷開

        MaxkeepAliveRequests:同一使用者端保持會話最多允許請求的資源連結次數,超過次數會斷開重新連接配接

        KeepAliveTimeout:保持會話連接配接後允許的最大逾時時間,此時間未有資源請求會斷開保持的會話        

httpd配置檔案詳解(上)

        基于prefork的使用者會話處理方式:

        StartServers:預設開啟等待使用者連接配接的程序數

        MinSpareServers:最少等待使用者連接配接的空閑程序數

        MaxSpareServers:最多等待使用者連接配接的空閑程序,超過則殺死多餘空閑程序

        ServerLimit:限制最大使用者請求會話連接配接數

        MaxClients:最大響應使用者會話的程序數,一般與ServerLimit相等

        MaxRequestsPerChild:一個程序生存期間能夠處理的會話數,超過則關閉此程序

httpd配置檔案詳解(上)

        基于worker.c的使用者會話處理方式:

        StarServers:預設開啟的等待使用者連接配接的程序數

        MaxClients:能夠同時處理的使用者請求會話連接配接

        MinSpareThreads:最小空閑線程數

        MaxSpareThreads:最大空閑線程數

        ThreadsPerChild:每個程序下的線程數

        MaxRequestsPerChild:每個程序生存期間能夠處理的最大會話數,0為不限制

httpd配置檔案詳解(上)

        監聽端口,預設為監聽伺服器所有網卡的80端口

        Listen IP:PORT的方式可以指定監聽固定IP及端口

        Listen可重複指定多次

httpd配置檔案詳解(上)

        DSO機制裝載的子產品

            格式為:LoadModule 子產品名 子產品路徑

        httpd -D DUMP_MODULES指令可檢視裝載的子產品

httpd配置檔案詳解(上)

        指定運作httpd的使用者群組,預設為apache使用者和apache組

        為安全起見,請盡量避免使用系統使用者與root使用者

    2、主服務配置段

httpd配置檔案詳解(上)

        指定伺服器主機名,如果沒有指定httpd會嘗試用主機名解析IP,如解析不到會用主機名代替

httpd配置檔案詳解(上)

        指定網站根目錄,預設為/var/www/html

httpd配置檔案詳解(上)

        站點路徑通路控制:

            Directory:基于本地檔案系統路徑做通路控制

            Location:基于URL通路路徑做通路控制

            Options:可以在選項後加“-”關閉此功能

                Indexes:當通路的路徑下無預設的首頁面,将所有資源以清單的形式呈現給使用者,非常危險

                FollowSymLinks:支援符号連結通路資源

            AllowOverride:支援在每個頁面目錄下建立.htaccess使用者實作對此目錄中資源通路時的控制功能

            Order,Deny,Allow:基于IP做通路控制

httpd配置檔案詳解(上)

        DirectoryIndex:定義預設的首頁,優先級由左到右

httpd配置檔案詳解(上)

        ErrorLog:錯誤日志檔案路徑

        LogLevel:錯誤日志記錄級别,高于此級别的報警才會記錄日志

httpd配置檔案詳解(上)

        LogFormat:通路日志的記錄格式

        CustomLog:通路日志路徑及所用格式名

       %h: 用戶端位址

       %l: 遠端登入名,通常為-

       %u: 認證時輸入使用者名,沒有認證時為-

       %t: 伺服器收到 使用者請求時的時間

       %r:請求報名的起始行

       %>s: 響應狀态碼

       %b: 響應封包的長度,機關是位元組

       %{HEADER_NAME}i: 記錄指定首部對應的值

httpd配置檔案詳解(上)

        Alias:路徑别名,實作URL路徑的映射,進而通路的資源不再依賴于站點根目錄

httpd配置檔案詳解(上)

        ScriptAlias:CGI腳本路徑别名

httpd配置檔案詳解(上)

        AddDefaultCharset:預設字元集

httpd配置檔案詳解(上)

        對網站基于使用者認證做通路控制:

            AllowOverride:

                AuthConfig啟用認證

            AuthType:認證類型

                Basic:基本認證,明文傳輸,常用

                digest:摘要認證,密文傳輸,某些浏覽器不支援

            AuthName:認證顯示資訊

            AuthBasicProvider:基本認證模式,預設為file格式

            AuthUserFile:認證檔案路徑

            Require:允許通路的認證使用者