Apache(HTTP)服務相關知識總結(一)

Apache簡介:html

    Apache是一款著名的web服務器的軟件。它是實現HTTP協議 的一個工具,而httpd則是Apache超文本傳輸協議服務器的主程序。web

下面我來講說Apache的配置文件(很是重要)windows

1, 配置文件整體分爲3個部分:服務器

        Section1: Global Environment
ide

            功能: 控制Apache服務器進程的全局操做的
工具

        Section2:  'Main' server configuration
測試

            功能: 提供主服務器(默認爲主服務器)的配置
網站

        Section3:  Virtual Hosts
spa

            功能: 提供虛擬服務器配置的
操作系統

    注意:默認狀態下,主服務器啓用,主服務器和虛擬服務器不能同時啓用,須要啓用虛擬服務器則先關閉主服務器。


2,Section1段的主要內容:

    ServerTokens  OS

    功能:顯示Apache的版本和操做系統的名稱

    serverRoot    "/etc/httpd"

    功能:設置服務器的根目錄爲/etc/httpd

    PidFile    run/httpd.pid (注意:此處爲相對路徑,絕對路徑前面要加/etc/httpd)

    功能:指定Apache服務器進程的進程號文件存放的位置爲:/etc/httpd/run/httpd.pid

    Timeout    300

    功能:    指定鏈接超時間隔爲300s

    Keeplive Off

    功能:    設置是否容許持久鏈接,Off爲不容許持久鏈接,且默認一次請求只能傳輸一個文件。

    MaxKeepAliveRequest     100

    功能:    設置一次持久鏈接最多接受的請求數爲100,0則表示無限制

    KeepAliveTimeout    15

    功能:    表示 一次持久鏈接的超時時間爲15s

    <IfModule prefork.c>(服務器池)

    

    <IfModule prefork.c>

StartServers       8   //服務器開啓時,啓動的服務器子進程爲8個

MinSpareServers    5    //最小空閒服務器子進程爲5個

MaxSpareServers   20    //最大空閒服務器子進程爲20個    

ServerLimit      256    //容許服務器進程數最多爲256個

MaxClients       256    //容許同時相應的客戶端數爲256個

MaxRequestsPerChild  4000  //容許一個服務器子進程最多相應的服務請求數爲4000個

    </IfModule>    

    

    Listen 80    功能: 設置監聽端口爲80端口,且能夠設置以下:IP:80這樣的形式,指明那個IP的80端口


     3,Section2段的主要內容以下:

        User Apache

        Group AApche

        功能:    提供Apache運行時的身份及所屬屬組分別爲用戶:Apache  基本組:Apache

        ServerAdmin  root@localhost

        功能:    設置Apache的服務器管理員的郵箱

        ServerName {IP|域名}:80    // 若是此處爲域名則須要DNS服務器的支持

        功能:    設置Apache默認站點的名稱和端口號

        UseCanonicalName Off

        功能:    設置是否使用規範名稱。當值爲Off時,表示使用客戶端提供的主機名和端口號

                                        當值爲On時,表示使用ServerName 設置的值

        DocumentRoot "/var/www/html"

        功能:    設置默認web站點的文檔根目錄,網站上的頁面文件都是存放在此根目錄下的

        

        <Directory />

            Options FollowSymLinks

            AllowOverride None

        </Directory>

        功能:    根目錄的訪問控制,<Directory />表示要對文件系統的目錄進行限制

        

        <Directory "/var/www/html">

            Options Indexes FollowSymLinks   //容許跟隨符號鏈接,其中Indexes的含義是,若是要訪問的頁面文檔不存在,則顯示文檔根目錄下的文件目錄清單

            AllowOverride None   //不容許覆蓋當前配置,也就是不處理.htaccess文件

            Order allow,deny    //訪問控制的順序,先allow後deny

                Allow from all    // 容許全部主機訪問

        </Directory>

         功能:對文檔根目錄的訪問控制       

        

        <IfModule mod_userdir.c> 

            UserDir disabled

        </IfModule> 

        功能:默認禁用我的主頁,而UserDir disable則是開放我的主頁面

        AccessFileName .htaccess

        功能:    指明每一個目錄中訪問控制文件的名稱爲.htaccess

        HostnameLookups Off

        功能:    設置在日誌中記錄的是客戶的名稱仍是IP地址,Off則記錄IP地址,On則記錄名稱

        ErrorLog    Logs/error_log

        功能:    指定錯誤日誌的存放位置

        LogLevel    warn

        功能:    指定日誌記錄的基本爲警告

        CustomLog    logs/access_log combined

        功能:    指定訪問日誌的位置及類型

        日誌的格式

                        %h: 客戶端地址

    %l: 遠程登陸名,一般爲-

    %u: 認證時輸入用戶名,沒有認證時爲-

    %t: 服務器收到 用戶請求時的時間

    %r:請求報名的起始行

    %>s: 響應狀態碼

    %b: 響應報文的長度,單位是字節

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


        ServerSignature    On

        功能:    在服務器產生的頁面中增長一行,顯示內容爲;服務器的版本和虛擬主機的名稱

        Alias /icons/ "/var/www/icons/"

        功能:    定義/icons/  爲/var/www/icons的別名,

        ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

        功能:    定義腳本別名,即將/cgi-bin/ 是 /var/www/cgi-bin/的別名

        IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable Charset=UTF-8

        功能:    設置自動生成目錄列表的顯示方式,

                    FancyIndexing  // 對每種類型的文件前加一個小圖標加以區別

                    VersionSort    // 對同一個軟件的多個版本進行排序

                    NameWidth=*    // 文件名字段自動適應當前目錄下的最長文件名


        AddDefaultCharset UTF-8

        功能:字符集的設置,默認設置爲UTF-8

        

        <Location /server-status>

        #    SetHandler server-status

        #    Order deny,allow

        #    Deny from all

        #    Allow from .example.com

        #</Location>

        功能:    設置Apache能夠報告詳細的服務器狀態信息。

    

    Section3:主要說虛擬機主機的配置:

        主要有3種,基於IP的虛擬主機,基於端口的虛擬主機,基於名字的虛擬主機。

        虛擬主機不能和主服務器同時開啓,全部要註釋掉虛擬主機

        註釋主服務器的站點根路徑指定:DocumentRoot


 定義虛擬主機

NameVirtualHost IP:PORT

<VirtualHost IP:PORT>

ServerName      服務名稱 

DocumentRoot     根目錄

ServerAlias       服務別名

ErrorLog        錯誤日誌

CustomLog        訪問日誌

</VirtualHost>

  大致上,Apache的配置文件就以上這麼多啦,固然還有一些沒有介紹,相比而言寫出來的重要些而已。


基於端口號的虛擬主機

首先,要先把默認的服務器的DocumentRoot註釋掉,且要多指定一個端口例如:8080端口

    wKiom1PnQViCgtbaAAAPNClchso014.png

而後就能夠編輯虛擬主機的內容啦:(內容有點簡單,日誌文件沒寫而已)

wKiom1PnQaiQW02oAAAlstD_33Y790.png

而後測試文件語法 httpd -t  或者 service httpd configtest

而後service httpd restart (修改端口號要重啓服務的)

測試以下:

wKioL1PnRVmTXF-rAAAgz5WJ9aQ345.png


wKiom1PnRGOiV4AlAAAiDoVpUKk620.png


再來看看基於IP的虛擬主機的實現:配置文件以下:

wKioL1PnRrWi2eoYAAAk9gboVw0063.png

咱們只需把端口都改成80端口,而IP地址則不能同樣

wKioL1PnRnCQkli-AAAlLGGO0vo996.png


wKiom1PnRWGjJ0cvAAAlFwOWNtg980.png

最後咱們經常使用的是基於主機名稱的實現,要想基於主機名,首先咱們要能解析出主機的IP地址,要能解析主機名的IP地址,就須要DNS服務,因此配置好DNS服務器是前提,在這裏,咱們只需在已經配置好的DNS服務器的解析庫文件中,/etc/hosts 文件中添加也行,

配置文件:

wKioL1PnSu3CobA2AAAf53mJDUY487.png

測試語法

重啓服務

wKiom1PnSOmjr5UVAAAluCGy8HA532.png

wKioL1PnSgzRTqvZAAAngoS7V94619.png


以上3種虛擬主機的創建就這樣啦,這裏順便說下,我用的虛擬機,作基於主機名稱虛擬主機的時候,我改的不是虛擬機的/etc/hosts,我改的是個人window本機的C盤/windows/system32/drivers/etc/hosts文件,在這個文件內添加以下內容便可:

    192.168.0.102  www1.stu14.com

    192.168.0.102  www2,stu14.com 


以上就是HTTP服務的配置文件的詳解以及如何去建立虛擬主機。

相關文章
相關標籤/搜索