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端口
而後就能夠編輯虛擬主機的內容啦:(內容有點簡單,日誌文件沒寫而已)
而後測試文件語法 httpd -t 或者 service httpd configtest
而後service httpd restart (修改端口號要重啓服務的)
測試以下:
再來看看基於IP的虛擬主機的實現:配置文件以下:
咱們只需把端口都改成80端口,而IP地址則不能同樣
最後咱們經常使用的是基於主機名稱的實現,要想基於主機名,首先咱們要能解析出主機的IP地址,要能解析主機名的IP地址,就須要DNS服務,因此配置好DNS服務器是前提,在這裏,咱們只需在已經配置好的DNS服務器的解析庫文件中,/etc/hosts 文件中添加也行,
配置文件:
測試語法
重啓服務
以上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服務的配置文件的詳解以及如何去建立虛擬主機。