Linux基礎(chǔ)教程之HTTP相關(guān)配置解讀
1、建立連接:接收或拒絕鏈接請(qǐng)求2、接受請(qǐng)求:接收客戶端請(qǐng)求報(bào)文中對(duì)某資源的一次請(qǐng)求的過程
Web訪問響應(yīng)模型(Web I/O)單進(jìn)程I/O模型:啟動(dòng)一個(gè)進(jìn)程處理用戶請(qǐng)求,而且一次只處理一個(gè),多個(gè)請(qǐng)求被串行響應(yīng);多進(jìn)程I/O模型:并行啟動(dòng)多個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)一個(gè)鏈接請(qǐng)求;復(fù)用I/O結(jié)構(gòu):啟動(dòng)一個(gè)進(jìn)程,同時(shí)響應(yīng)N個(gè)鏈接請(qǐng)求;實(shí)現(xiàn)方法:多線程模型和事件驅(qū)動(dòng);多線程模型:一個(gè)進(jìn)程生成N個(gè)線程,每線程響應(yīng)一個(gè)連接請(qǐng)求;事件驅(qū)動(dòng):一個(gè)進(jìn)程處理N個(gè)請(qǐng)求。復(fù)用的多進(jìn)程I/O模型:啟動(dòng)M個(gè)進(jìn)程,每個(gè)進(jìn)程響應(yīng)N個(gè)連接請(qǐng)求,同時(shí)接收M*N個(gè)請(qǐng)求。
?3、處理請(qǐng)求:
服務(wù)器對(duì)請(qǐng)求報(bào)文進(jìn)行解析,并獲取請(qǐng)求的資源及請(qǐng)求方法
等相關(guān)信息,根據(jù)方法,資源,首部和可選的主體部分對(duì)請(qǐng)求進(jìn)行處理元數(shù)據(jù):請(qǐng)求報(bào)文首部<method> <URL> <VERSION>HEADERS 格式 name:value<request body>
示例:Host : www.vfuj.cn 請(qǐng)求的主機(jī)名稱Server: Apache/2.4.7HTTP常用請(qǐng)求方式,Method GET、POST、HEAD、PUT、DELETE、TRACE、OPTIONS
4、訪問資源:
服務(wù)器獲取請(qǐng)求報(bào)文中請(qǐng)求的資源web服務(wù)器,即存放了 web資源的服務(wù)器,負(fù)責(zé)向請(qǐng)求者提供對(duì)方請(qǐng)求的靜態(tài)資源,或 動(dòng)態(tài)運(yùn)行后生成的資源 。資源放置于本地文件系統(tǒng)特定的路徑:DocRoot –> /var/www/html/var/www/html/images/logo.jpghttp://www.vfuj.cn/images/logo.jpgweb服務(wù)器資源路徑映射方式:
(a) docroot(b) alias(c) 虛擬主機(jī)docroot(d) 用戶家目錄docroot
?5、構(gòu)建響應(yīng)報(bào)文:
一旦Web服務(wù)器識(shí)別除了資源,就執(zhí)行請(qǐng)求方法中描述的動(dòng)作,并返回響應(yīng)報(bào)文。響應(yīng)報(bào)文中包含有響應(yīng)狀態(tài)碼、響應(yīng)首部,如果生成了響應(yīng)主體的話,還包括響應(yīng)主體。
1)響應(yīng)實(shí)體:如果事務(wù)處理產(chǎn)生了響應(yīng)主體,就將內(nèi)容放在響應(yīng)報(bào)文中回送過去。響應(yīng)報(bào)文中通常包括: 描述了響應(yīng)主體MIME類型的Content-Type首部描述了響應(yīng)主體長度的Content-Length 實(shí)際報(bào)文的主體內(nèi)容2)URL重定向:web服務(wù)構(gòu)建的響應(yīng)并非客戶端請(qǐng)求的資源 ,而是資源另外一個(gè)訪問路徑:
永久重定向:http://www.360buy.com臨時(shí)重定向:http://www.taobao.com
3)MIME類型:
Web服務(wù)器要負(fù)責(zé)確定響應(yīng)主體的MIME類型。有很多配置服務(wù)器的方法可以將MIME類型與資源管理起來 ;魔法分類:Apache web服務(wù)器可以掃描每個(gè)資源的內(nèi)容,并將其與一個(gè)已知模式表(被稱為魔法文件)進(jìn)行匹配,以決定每個(gè)文件的MIME類型。這樣做可能比較慢,但很方便,尤其是文件沒有標(biāo)準(zhǔn)擴(kuò)展名的時(shí)候;顯式分類:可以對(duì)Web服務(wù)器進(jìn)行配置,使其不考慮文件的擴(kuò)展名或內(nèi)容,強(qiáng)制特定文件或目錄內(nèi)容擁有某個(gè)MIME類型。類型協(xié)商: 有些Web服務(wù)器經(jīng)過配置,可以以多種文檔格 式來存儲(chǔ)資源。在這種情況下,可以配置Web服務(wù)器,使其可 以通過與用戶的協(xié)商來決定使用哪種格式(及相關(guān)的MIME類型 )”最好”
6、發(fā)送響應(yīng)報(bào)文
Web服務(wù)器通過連接發(fā)送數(shù)據(jù)時(shí)也會(huì)面臨與接收數(shù)據(jù)一 樣的問題。服務(wù)器可能有很多條到各個(gè)客戶端的連接,有些是空 閑的,有些在向服務(wù)器發(fā)送數(shù)據(jù),還有一些在向客戶端回送響應(yīng) 數(shù)據(jù)。服務(wù)器要記錄連接的狀態(tài),還要特別注意對(duì)持久連接的處 理。對(duì)非持久連接而言,服務(wù)器應(yīng)該在發(fā)送了整條報(bào)文之后,關(guān) 閉自己這一端的連接。對(duì)持久連接來說,連接可能仍保持打開狀 態(tài),在這種情況下,服務(wù)器要正確地計(jì)算Content-Length首部 ,不然客戶端就無法知道響應(yīng)什么時(shí)候結(jié)束了
7、記錄日志?
最后,當(dāng)事務(wù)結(jié)束時(shí),Web服務(wù)器會(huì)在日志文件中添加 一個(gè)條目,來描述已執(zhí)行的事務(wù)
特性:
高度模塊化: core+modulesDSO:Dynamic Shared Object 動(dòng)態(tài)加/卸載MPM:multi-processing module 多路處理模塊MPM工作模式:
prefork:多進(jìn)程I/O模型,每個(gè)進(jìn)程響應(yīng)一個(gè)請(qǐng)求,默認(rèn)模型 。一個(gè)主進(jìn)程:生成和回收n個(gè)子進(jìn)程,創(chuàng)建套接字,不響應(yīng)請(qǐng)求多個(gè)子進(jìn)程:工作work進(jìn)程,每個(gè)子進(jìn)程處理一個(gè)請(qǐng)求;系統(tǒng)初始 時(shí),預(yù)先生成多個(gè)空閑進(jìn)程,等待請(qǐng)求,最大不超過1024個(gè) 。worker:復(fù)用的多進(jìn)程I/O模型,多進(jìn)程多線程,IIS使用此模型 。一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)子進(jìn)程負(fù)責(zé)生成n個(gè)線程,每個(gè) 線程響應(yīng)一個(gè)請(qǐng)求,并發(fā)響應(yīng)請(qǐng)求:m*nevent:事件驅(qū)動(dòng)模型(worker模型的變種)一個(gè)主進(jìn)程:生成m個(gè)子進(jìn)程,每個(gè)進(jìn)程直接響應(yīng)n個(gè)請(qǐng)求,并發(fā)響 應(yīng)請(qǐng)求:m*n,有專門的線程來管理這些keep-alive類型的線程,當(dāng)有 真實(shí)請(qǐng)求時(shí),將請(qǐng)求傳遞給服務(wù)線程,執(zhí)行完畢后,又允許釋放。這樣 增強(qiáng)了高并發(fā)場景下的請(qǐng)求處理能力 。httpd-2.2: event 測試版, centos6默認(rèn)httpd-2.4:event 穩(wěn)定版,centos7默認(rèn)
版本:centos6:2.2centos7:2.4安裝方式:rpm:centos發(fā)行版,穩(wěn)定,建議使用編譯:定制或特殊需求Centos 6程序環(huán)境:httpd-2.2配置文件:/etc/httpd/conf/httpd.conf/etc/httpd/conf.d/*.conf檢查配置語法:????????????httpd -t
? ? ? ? ? ??service httpd configtest
? ????進(jìn)行語法檢測時(shí),會(huì)報(bào)錯(cuò),雖然沒有影響,但是也不好看;解決方法:
? ? ? ? ? ? 方法一:
? ? ? ? ? ? ? ? ? ? ? ?
方法二: vim /etc/hosts ?進(jìn)行本地地址解析
? ? ?
服務(wù)腳本:/etc/rc.d/init.d/httpd
腳本配置文件:/etc/sysconfig/httpd服務(wù)控制和啟動(dòng):
chkconfig httpd on|offservice {start|stop|restart|status|configtest|reload} httpd
站點(diǎn)網(wǎng)頁文檔根目錄: /var/www/html模塊文件路徑:?
/etc/httpd/modules
/usr/lib64/httpd/modules
主程序文件:
/usr/sbin/httpd/usr/sbin/httpd.worker/usr/sbin/httpd.event主進(jìn)程文件: /etc/httpd/run/httpd.pid/var/run/httpd/httpd.pid
日志文件目錄:
/var/log/httpdaccess_log: 訪問日志error_log:錯(cuò)誤 日志
幫助文檔包:
? ? ? ? ? ? httpd-manual
? ??? 如果上不了網(wǎng)時(shí),可以手動(dòng)安裝文檔包,進(jìn)行查看
Httpd 2.2常見配置模塊文件路徑:
/usr/lib64/httpd/modules
httpd配置文件的組成:
# grep “Section” /etc/httpd/conf/httpd.conf 主配置文件### Section 1: Global Environment 全局環(huán)境匹配### Section 2: ‘Main’ server configuration 主服務(wù)的的配置### Section 3: Virtual Hosts 虛擬主機(jī)配置
配置格式:
directive + value 指令 + 值
directive: 不區(qū)分字符大小寫value: 為路徑時(shí),是否區(qū)分大小寫,取決于文件系統(tǒng)
下面先介紹一個(gè)小實(shí)驗(yàn),再介紹HTTPD的基本配置:
??
在客戶端機(jī)器連接服務(wù)器時(shí),顯示出Apache版本信息,不安全。
? ? ? ?編輯HTTPD主配置文件,加上下面一行就可以了
? ? ? #vim /etc/httpd/conf/httpd.conf
? ? ? ?ServerTokens productonly(可以簡寫prod)
? ? ? ? ??service restart httpd
?
HTTPD基本配置及用法:
1、切換工作模式:
vim /etc/sysconfig/httpdHTTPD=/usr/sbin/httpd.worker
2、修改監(jiān)聽的IP和Port
Listen [IP:]PORT
(1) 省略IP表示為0.0.0.0;表示監(jiān)聽本機(jī)所有IP;(2) Listen指令可重復(fù)出現(xiàn)多次Listen 80Listen 8080(3) 修改監(jiān)聽socket,重啟服務(wù)進(jìn)程方可生效
4、MPM( Multi-Processing Module)多路處理模塊 :
prefork, worker, event(試驗(yàn)階段)httpd-2.2不支持同時(shí)編譯多個(gè)模塊,所以只能編譯時(shí)選定一個(gè);rpm安裝的包提供三個(gè)二進(jìn)制程序文件,
分別用于實(shí)現(xiàn)對(duì)不同MPM機(jī)制的支持
確認(rèn)方法:
ps aux | grep httpd默認(rèn)為/usr/sbin/httpd, 即prefork模式查看靜態(tài)編譯的模塊 :httpd -l查看靜態(tài)編譯及動(dòng)態(tài)裝載的模塊 :httpd –M動(dòng)態(tài)模塊加載:不需重啟即生效動(dòng)態(tài)模塊路徑 :/usr/lib64/httpd/modules/
更換使用的httpd程序:vim /etc/sysconfig/httpdHTTPD=/usr/sbin/httpd.worker重啟服務(wù)生效httpd.worker -l 查看pstree -p |grep httpd 查看進(jìn)程和線程測試:yum install httpd-toolsab -c 1000 -n 10000?http://192.168.164.129/
prefork的默認(rèn)配置:
<IfModule?prefork.c>StartServers 8 開機(jī)啟動(dòng)時(shí),默認(rèn)開啟8個(gè)進(jìn)程MinSpareServers 5 最小空閑進(jìn)程MaxSpareServers 20 最大空閑進(jìn)程ServerLimit 256 最多進(jìn)程數(shù),最大20000MaxClients 256 最大并發(fā)MaxRequestsPerChild 4000 子進(jìn)程最多能處理的請(qǐng)求 數(shù)量。在處理MaxRequestsPerChild 個(gè)請(qǐng)求之后,
子進(jìn)程將 會(huì)被父進(jìn)程終止,這時(shí)候子進(jìn)程占用的內(nèi)存就會(huì)釋放(為0時(shí) 永遠(yuǎn)不釋放)
</IfModule>?worker的默認(rèn)配置:<IfModule?worker.c>StartServers 4 開機(jī)啟動(dòng)時(shí),默認(rèn)開啟4個(gè)進(jìn)程MaxClients 300 最大支持多少客戶端并發(fā)訪問MinSpareThreads 25 最小的空閑線程MaxSpareThreads 75 最大的空閑線程ThreadsPerChild 25 每個(gè)子進(jìn)程生成的線程數(shù)量MaxRequestsPerChild 0 無限制</IfModule>
5、DSO: Dynamic Shared Object 動(dòng)態(tài)共享對(duì)象
加載動(dòng)態(tài)模塊配置:/etc/httpd/conf/httpd.conf配置指令實(shí)現(xiàn)模塊加載格式:LoadModule <mod_name> <mod_path>模塊文件路徑可使用相對(duì)路徑:相對(duì)于ServerRoot(默認(rèn)/etc/httpd)指向的路徑而言:/etc/httpd/modules/
示例:要使用某個(gè)某塊,需按照下面格式,加載到主配置文件里即可:
? ?LoadModule auth_basic_module modules/mod_auth_basic.so
6、定義’Main’ server的文檔頁面路徑 :
DocumentRoot “/path”?網(wǎng)站主頁目錄文檔路徑映射:DocumentRoot指向的路徑為URL路徑的起始位置
下面先介紹一下,什么是URL:
URL組成<scheme>://<user>:<password>@<host>:<port>/<path>;<params> ?<query>#<frag>schame:方案,訪問服務(wù)器以獲取資源時(shí)要使用哪種協(xié)議user:用戶,某些方案訪問資源時(shí)需要的用戶名password:密碼,用戶對(duì)應(yīng)的密碼,中間用:分隔Host:主機(jī),資源宿主服務(wù)器的主機(jī)名或IP地址port:端口,資源宿主服務(wù)器正在監(jiān)聽的端口號(hào),很多方案有默認(rèn)端口號(hào)path:路徑,服務(wù)器資源的本地名,由一個(gè)/將其與前面的URL組件分隔params:參數(shù),某些方案用這個(gè)組件來指定輸入的參數(shù),參數(shù)為名/值對(duì),URL中可多含多個(gè)參數(shù),用;分隔 .query:查詢,某些方案會(huì)用這個(gè)組件傳遞參數(shù)以激活程序,如數(shù)據(jù)庫,用?分隔,多個(gè)查詢用&分隔frag:片段,一小片或一部分資源的名字,此組件在客戶端使用,用#分隔
好了,通過以上已經(jīng)了解了什么事URL了,下面介紹怎么設(shè)置主頁等相關(guān)操作:
實(shí)驗(yàn):更改HTTPD主頁;實(shí)驗(yàn)環(huán)境在centos6.9主機(jī)上搭建的HTTPD服務(wù),
? ? ? ? ? (主機(jī)IP:192.168.164.129)
? ? ? ? 首先自定義一個(gè)主頁目錄以及文件:
#vim /etc/httpd/conf/httpd.confDocumentRoot “/app/website1”#service httpd reload訪問測試:
? ? ? ? ?如果以上自定義的主頁文件不存在時(shí),會(huì)出現(xiàn)以下情景:
默認(rèn)情況下,會(huì)在/var/www/html目錄下找index.html這個(gè)主頁文件,如果找不到,則顯示下圖主頁。DirectoryIndex index.html index.html.varInclude conf.d/*.conf下圖主頁文件:/etc/httpd/conf.d/welcome.conf
? 如果welcome.conf這個(gè)文件也找不到,會(huì)出現(xiàn)下圖的情景:
?cd /etc/httpd/conf.d
? ? ? ? ?mv welcome.conf welcome.conf.bak
如果把主配置文件里的主頁目錄再改回去,
cd /var/www/html/mv index.html b.html
下圖把主頁目錄下的文件都列出來了,不安全vim /etc/httpd/conf/httpd.confOption -Indexes FollowSymLinksservice httpd reload?
下圖中,再次訪問網(wǎng)站時(shí),主目錄下的文件就顯示不了,變得安全點(diǎn)。
注意:SELinux和iptables的狀態(tài)
7、站點(diǎn)訪問控制常見機(jī)制
可基于兩種類型的路徑指明對(duì)哪些資源進(jìn)行何種訪問控制訪問控制機(jī)制有兩種:客戶端來源地址,用戶賬號(hào)文件系統(tǒng)路徑:<Directory “/path “>…</Directory><File “/path/file”>…</File><FileMatch “PATTERN”>…</FileMatch>URL路徑:<Location ” ” >…</Location><LocationMatch ” “>….</LocationMatch>
示例:
<FilesMatch “.(gif|jpe?g|png)$”><Files “?at.*”> 通配符<Location /status><LocationMatch “/(extra|special)/data”>訪問控制機(jī)制:基于來源地址基于賬號(hào)Directory中“基于來源地址”實(shí)現(xiàn)訪問控制
(1)Options: 后跟1個(gè)或多個(gè)以空白字符分隔的選項(xiàng)列表 在選項(xiàng)前的+,- 表示增加或刪除指定選項(xiàng)所有可用特性:Indexes Includes FollowSymLinksSymLinksifOwnerMatch ExecCGI MultiViews常見選項(xiàng):Indexes:指明的URL路徑下不存在與定義的主頁面資源相符的資源文件時(shí),返回索引列表給用戶 。沒寫時(shí)默認(rèn)是不開啟的。
FollowSymLinks:允許訪問主頁目錄下的符號(hào)鏈接文件所指向的源文件 ;沒寫時(shí)默認(rèn)是開啟的。None:全部禁用All: 全部允許
(2) AllowOverride
與訪問控制相關(guān)的哪些指令可以放在指定目錄下的?.htaccess(由AccessFileName指定)文件中,覆蓋之前的配置指令只對(duì)<directory>語句有效AllowOverride All: 所有指令都有效AllowOverride None: .htaccess 文件里定義的策略無效AllowOverride AuthConfig Indexes 除了AuthConfig 和Indexes的其它指令都無法覆蓋? 示例:實(shí)現(xiàn)AllowOverride ,基于指定目錄.htaccess,以及FollowSymlinks的用法
? ? ? ? ?# vim /etc/httpd/conf/httpd.conf
touch /app/website1/.htaccess
? 訪問測試,訪問軟鏈接,直接指向源文件的內(nèi)容。
?




(3)基于來源地址的訪問控制機(jī)制
Order:定義生效次序;寫在最后面的表示默認(rèn)法則Order allow,deny ? ?:默認(rèn)拒絕Order deny,allow ? ?:默認(rèn)允許Allow from?
?Deny from
來源地址:IPNetAddr: 172.16172.16.0.0172.16.0.0/16
具體用法:下圖中定義了order allow,deny先允許,后拒絕;根據(jù)法則后定義的生效
? ? #curl ?http://192.168.164.29 ??是被拒絕訪問的
? ? ?
8、定義默認(rèn)主頁面
DirectoryIndex index.html inex.html.var
9、日志設(shè)定
日志類型:訪問日志 錯(cuò)誤日志錯(cuò)誤日志:
ErrorLog logs/error_logLogLevel warn?定義日志級(jí)別,默認(rèn)值warn
loglevel 可選值: debug, info, notice, warn,error crit, alert, emerg訪問日志: /var/log/httpd/access_log定義日志格式:LogFormat format stringsLogFormat “%h %l %u %t ”%r” %>s %b ”%{Referer}i” ”%{User-Agent}i”” combined使用日志格式: CustomLog logs/access_log combined參考幫助: http://httpd.apache.org/docs/2.2/mod/mod_log_config.html#formats
%h 客戶端IP地址%l 遠(yuǎn)程用戶,啟用mod_ident才有效,通常為減號(hào)“-”%u 驗(yàn)證(basic,digest)遠(yuǎn)程用戶,非登錄訪問時(shí),為 一個(gè)減號(hào)“-”%t 服務(wù)器收到請(qǐng)求時(shí)的時(shí)間%r First line of request,即表示請(qǐng)求報(bào)文的首行;記錄了 此次請(qǐng)求的“方法”,“URL”以及協(xié)議版本%>s 響應(yīng)狀態(tài)碼%b 響應(yīng)報(bào)文的大小,單位是字節(jié);不包括響應(yīng)報(bào)文http首部%{Referer}i 請(qǐng)求報(bào)文中首部“referer”的值;即從哪個(gè)頁 面中的超鏈接跳轉(zhuǎn)至當(dāng)前頁面的%{User-Agent}i 請(qǐng)求報(bào)文中首部“User-Agent”的值;即 發(fā)出請(qǐng)求的應(yīng)用程序
10、定義路徑別名
格式: Alias /URL/ ?“/PATH/”DocumentRoot “/www/htdocs”http://www.vfuj.cn/download/bash.rpm==>/www/htdocs/download/bash.rpm
Alias /download/ ? ?“/rpms/pub/”
http://www.vfuj.cn/download/bash.rpm==>/rpms/pub/bash.rpmhttp://www.vfuj.cn/images/logo.png
==>/www/htdocs/images/logo.png注意:以上紅色字體標(biāo)識(shí),是一一對(duì)應(yīng)的,注意/路徑和別名的區(qū)分。
11、設(shè)定默認(rèn)字符集AddDefaultCharset UTF-8中文字符集:GBK, GB2312, GB18030?12、基于用戶的訪問控制
認(rèn)證質(zhì)詢:WWW-Authenticate:響應(yīng)碼為401,拒絕客戶端請(qǐng)求,并說明要求客戶端提供賬號(hào)和密碼認(rèn)證:Authorization:客戶端用戶填入賬號(hào)和密碼后再次發(fā)送請(qǐng)求報(bào)文;認(rèn)證通過時(shí),則服務(wù)器發(fā)送響應(yīng)的資源認(rèn)證法式兩種:basic:明文–不安全,可以基于https訪問digest:消息摘要認(rèn)證,兼容性差安全域:需要用戶認(rèn)證后方能訪問的路徑;應(yīng)該通過名稱對(duì)其進(jìn)行標(biāo)識(shí),以便告知用戶認(rèn)證的原因用戶的賬號(hào)和密碼虛擬賬號(hào):僅用于訪問某服務(wù)時(shí)用到的認(rèn)證標(biāo)識(shí)存儲(chǔ):文本文件,SQL數(shù)據(jù)庫,ldap目錄存儲(chǔ),nis等
?
basic認(rèn)證配置示例:
(1) 定義安全域<Directory “/path”>Options NoneAllowOverride None 是否允許驗(yàn)證.htaccess文件AuthType Basic 認(rèn)證類型AuthName “String” 管理目錄提示語句AuthUserFile “/PATH/HTTPD_USER_PASSWD_FILE”驗(yàn)證配置文件Require user username1 username2 …指定用戶</Directory>允許賬號(hào)文件中的所有用戶登錄訪問: Require valid-user
(2) 提供賬號(hào)和密碼存儲(chǔ)(文本文件)
使用專用命令完成此類文件的創(chuàng)建及用戶管理htpasswd命令來源于httpd-tools包htpasswd?[options] /PATH/HTTPD_PASSWD_FILE username
-c:自動(dòng)創(chuàng)建文件,僅應(yīng)該在文件不存在時(shí)使用-m:md5格式加密-s:sha格式加密-D:刪除指定用戶
實(shí)驗(yàn):基于用戶賬號(hào)密碼認(rèn)證的訪問控制;
實(shí)驗(yàn)環(huán)境在centos6.9上搭建httpd服務(wù),(192.168.8.128)
也可以定義在.htaccess文件里:
vim /etc/httpd/conf/httpd.conf
實(shí)驗(yàn):基于用戶組的安全認(rèn)證,在上個(gè)實(shí)驗(yàn)基礎(chǔ)上實(shí)現(xiàn)
示例:?
Require valid-user
14、虛擬主機(jī)
站點(diǎn)標(biāo)識(shí): socketIP相同,但端口不同IP不同,但端口均為默認(rèn)端口FQDN不同;請(qǐng)求報(bào)文中首部Host: www.vfuj.cn有三種實(shí)現(xiàn)方案:
基于ip:為每個(gè)虛擬主機(jī)準(zhǔn)備至少一個(gè)ip地址 ;基于port:為每個(gè)虛擬主機(jī)使用至少一個(gè)獨(dú)立的port;基于FQDN:為每個(gè)虛擬主機(jī)使用至少一個(gè)FQDN
注意:一般虛擬機(jī)不要與main主機(jī)混用;因此,要使用虛擬主機(jī), 一般先禁用main主機(jī)禁用方法:注釋中心主機(jī)的DocumentRoot指令即可虛擬主機(jī)的配置方法:
<VirtualHost IP:PORT>ServerName FQDNDocumentRoot “/path”</VirtualHost>建議:上述配置存放在獨(dú)立的配置文件中
其它可用指令:
ServerAlias:虛擬主機(jī)的別名;可多次使用ErrorLog: 錯(cuò)誤日志CustomLog:訪問日志<Directory “/path”> </Directory>Alias
15、status頁面幫助我們實(shí)現(xiàn)http服務(wù)器的一些功能狀態(tài)的查看,以頁面的方式查看他的工作情況:進(jìn)程編號(hào),負(fù)載狀態(tài)。vim /etc/httpd/conf/httpd.conf
LoadModule status_module modules/mod_status.so要想實(shí)現(xiàn)status功能,模塊必須加載。
可以在虛擬機(jī)設(shè)置里面定義,也可以單獨(dú)定義在conf.d目錄下。
<Location /server-status>SetHandler server-statusOrder allow,denyAllow from 172.16</Location>ExtendedStatus On 顯示擴(kuò)展信息