国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
筆記: Apache2.0參考手冊(cè)
閱讀Apache2。0參考手冊(cè)
第九章:
1,配置文件為httpd.conf,也可能為別的名,通過 -f 規(guī)則配置文件,或者規(guī)定目錄代替多個(gè)配置文件,此時(shí)要注意該目錄下沒有不是配置文件的文件
配置文件由指令和參數(shù)構(gòu)成,次序不重要,也由依賴的,指令過長,用 \, 但 \ 后面不能有任何內(nèi)容。指令有作用域
要能閱讀指令文檔,一條指令的文檔中包括語法,上下文(context),狀態(tài)(是指和apache綁定的程度),所在模塊名,另外,deprecated(丟棄)
2,apache定位文件時(shí)依賴于文件系統(tǒng);DocumentRoot,文檔樹的根,最好將其改為ServerRoot以外的目錄;
首先配置文件系統(tǒng)的根,使用 <Directory>容器完成,<>是指令塊,注意目錄設(shè)置的繼承性,所以在設(shè)置文件系統(tǒng)根時(shí)要保守;之后配置文檔樹根了
Options指令9個(gè)選項(xiàng),Indexes(使用索引頁?),F(xiàn)ollowSymLinks(使用符號(hào)連接,改善性能),SymLinksIfOwnerMatch(要Owner匹配才能使用符號(hào)鏈接),
    MultiView(服務(wù)器可以和客戶瀏覽器協(xié)商頁面,比如頁面的語言版本),ExecCGI(服務(wù)器可以在此目錄中執(zhí)行CGI腳本),Includes(可以包含SSI標(biāo)簽解釋文件)
    IncludesNoExec(對(duì)要運(yùn)行外部程序的標(biāo)簽不會(huì)承兌),None,All,好理解;Options中可以使用+,-,等
注意<Directory>和<Location><Files>指令的區(qū)別,作用相似,Directory應(yīng)該總用于磁盤上的目錄,F(xiàn)iles用于單獨(dú)的文件,
    Location應(yīng)該只能夠用于沒有相應(yīng)目錄和文件的請(qǐng)求,比如建立URI,以映射指定的模塊;
    另外三條指令有對(duì)于的Match指令(或者在后面有~),參數(shù)中使用正則表達(dá)式
基本的配置:
Timeout超時(shí),注意衡量自己的網(wǎng)絡(luò)
Keeplive,KeepAliveRequests(一個(gè)連接上有多少請(qǐng)求),KeepAliveTimeout(同一個(gè)連接中下一個(gè)請(qǐng)求的超時(shí))
User,Group,誰在運(yùn)行apache的子程序
MIME類型,注意mod_mime,mod_mime_magic模塊的區(qū)別,可以告訴瀏覽器為正在下載的文件運(yùn)行哪個(gè)程序
通過兩種方法控制服務(wù)器返回的MIME類型,TypesConfig使用外部文件,AddType直接設(shè)置,建議用后者;
  還有表述打包(內(nèi)容編碼:Content-Encoding),打包可以讓文件在發(fā)送前壓縮,加密;還表述使用哪種語言和哪個(gè)字符集,由mod_negotiation選項(xiàng)發(fā)送哪個(gè)版本的文件
3,HTTP請(qǐng)求和響應(yīng)
手工模擬http請(qǐng)求,在我mylinux機(jī)器上做試驗(yàn)
telnet 127.0.0.1 80
GET /index/index.php

注意:以空格行結(jié)束請(qǐng)求
GET /index/index.html.zh-cn.gb2312 HTTP/1.1

后面沒有HTTP版本信息的是HTTP0.9的,只返回頁面,沒有HTTP頭,請(qǐng)求時(shí),還可以指定其他參數(shù),比如
GET /index/index.html.zh-cn.gb2312 HTTP/1.1
Host: localhost

服務(wù)器返回,有http頭,
4,錯(cuò)誤狀態(tài)
  五個(gè)基本類別:信息型,成功,重定向,客戶錯(cuò)誤,服務(wù)器錯(cuò)誤,以狀態(tài)碼的第一位編號(hào)表示:1xx-5xx
定制錯(cuò)誤頁面,只有4xx和5xx的頁面能被替換,使用ErrorDocument配置指令,兩個(gè)參數(shù):錯(cuò)誤代碼,替換頁面

第十章
1,AAA模塊
分清楚三A的區(qū)別,A(認(rèn)證Authentication)A(授權(quán)Authorization)A(帳戶確認(rèn)Accounting)的區(qū)別
1.1認(rèn)證:
有五個(gè)模塊,一類基本的,一類摘要認(rèn)證的,兩條指令,AuthType指定類別:Basic基本,Digest摘要認(rèn)證,AuthName認(rèn)證領(lǐng)域,在認(rèn)證框上提示用戶的
基本認(rèn)證:
當(dāng)瀏覽器訪問基本認(rèn)證保護(hù)的URL時(shí),服務(wù)器先返回401非授權(quán)代碼,同時(shí)在響應(yīng)中增加一個(gè)頭文件-WWW認(rèn)證,此頭文件擁有兩個(gè)關(guān)聯(lián)值,如:
        WWW-Authenticate: Basic realm="Server Infromaion"  ,客戶收到后,詢問名稱口令,再次請(qǐng)求,這次的請(qǐng)求頭包含認(rèn)證頭,頭中包含認(rèn)證類型,名稱,口
    網(wǎng)絡(luò)上傳輸?shù)挠脩裘涂诹?,先有瀏覽器合并用戶名和口令,用冒號(hào)分隔的單獨(dú)字符串,再使用base64算法編碼,注意,這是很容易反轉(zhuǎn)得出原始口令的
摘要認(rèn)證:
現(xiàn)在不是所以瀏覽器都支持,優(yōu)點(diǎn)是不傳輸明文口令。區(qū)別在于上面服務(wù)器返回的頭中WWW認(rèn)證的不同,如下:
        WWW-Authenticate: Digest realm="Server Information",nonce="FikdfiefFkejj-dfdfkfkkf",algorithm=MD5,domain="/",qop="auth"
  其中 nonce當(dāng)前值是跟隨相應(yīng)401代碼隨即生成的唯一值,是摘要認(rèn)證的關(guān)鍵,algorithm默認(rèn)MD5算法,domain標(biāo)識(shí)使用相同認(rèn)證信息的域范圍,qop確定保護(hù)的質(zhì)量,目前apache還只支持auth
客戶瀏覽器進(jìn)行下一此請(qǐng)求:
        Authorization: Digest username="rbb",realm="Server Infromaion",nonce="FikdfiefFkejj-dfdfkfkkf",uri="/server-info",qop="auth",nc=00000001,cnonce="0dfdfdjl",response="fdjfkjkjiefje2343"
  其中,username,realm,好理解,nonce要和服務(wù)器給的一樣,nc值是當(dāng)前值使用次數(shù)的計(jì)數(shù)器,cnonce是客戶生成的唯一字符串,可以讓用戶參與認(rèn)證控制,
     response里是存儲(chǔ)口令的地方,包含用戶名,口令,URI,當(dāng)前值,cnonce,計(jì)數(shù)器等等,通過了指定算法編碼,服務(wù)器不能反轉(zhuǎn),只能重構(gòu)后也通過算法編碼,再校驗(yàn),是否匹配
基本認(rèn)證:
匿名認(rèn)證,通過mod_auth_anon實(shí)現(xiàn)類似ftp站點(diǎn)的驗(yàn)證方式
基于文件的認(rèn)證,有三個(gè)模塊實(shí)現(xiàn)
mod_auth:指令是AuthUserFile,AuthGroupFile,用戶文件類似/etc/passwd,必須使用htpasswd程序添加用戶和口令;組文件格式是組名后跟空格分開的用戶名 , webdev:rbb zKll kfff
基于數(shù)據(jù)庫的認(rèn)證,兩個(gè)模塊:mod_auth_db,mod_auth_dbm,用戶和組信息存在DB或DBM數(shù)據(jù)庫中,指令有AuthDBUserFile,AuthDBMUserFile,AuthDBGroupFile,AuthDBMGroupFile
  通過htdbm(替代dbmmanage)管理數(shù)據(jù)庫中的信息;后面的AuthAuthorizative指令可以讓多個(gè)認(rèn)證模塊工作,默認(rèn)為on,只有第一個(gè)受到調(diào)用的模塊可以認(rèn)證客戶
摘要認(rèn)證:
兩個(gè)模塊:Mod_digest,mod_auth_digest,apache2中已經(jīng)取消了前者;指令有AuthDigestFile,AuthDigestGroupFile,
     groupfile通基本認(rèn)證的相同,AuthDigestFile則不同,使用的程序也不同,利用htdigest程序生成:htdigest [-c] passwdfile realm username ,要指定realm
  AuthDigestDomain指令定義共享相同認(rèn)證信息的域,參數(shù)是空格分開的URI列表;AuthDigestNonceLifetime,nonce當(dāng)前值的有效時(shí)間
1.2授權(quán)
唯一指令Require,由核心實(shí)現(xiàn)的,定義可以訪問指定頁面的用戶集合,3個(gè)參數(shù):user(用戶空格分開) group valid-user(配置的口令文件中的任何用戶都可以)
1.3訪問控制,access control
一個(gè)標(biāo)準(zhǔn)模塊,3個(gè)指令:Allow Deny Order;Allow|Deny from condition,條件有:all,域名稱,ip地址,網(wǎng)絡(luò)/網(wǎng)絡(luò)掩碼,env=環(huán)境變量
              Order指令A(yù)llow和Deny的順序
1.4 綜合認(rèn)證授權(quán)和訪問控制
要確保所以以/開始的URI受到保護(hù),要用 <Location />指令,用DocumentRoot<Directory>只保護(hù)文檔樹中的頁面
Satisfy指令,當(dāng)一個(gè)資源同時(shí)受到認(rèn)證和訪問控制指令限制時(shí)起作用,兩個(gè)參數(shù)Any,All,Any只要通過一個(gè),All兩個(gè)都要通過
另外注意存儲(chǔ)口令信息的位置問題

第二十章 日志
“日志就是金錢”
有三個(gè)日志,Cookie和傳輸日志,和最主要的訪問日志
注意服務(wù)器記錄日志要花費(fèi)時(shí)間,進(jìn)行日志信息越多,時(shí)間越長
1,LogFormat和CustomLog指令
LogFormat指令可以接受一個(gè)單獨(dú)參數(shù)和兩參數(shù),第二個(gè)參數(shù)是別名,可以重用,查表得知參數(shù)的格式說明
CustomLog定義日志文件,兩個(gè)參數(shù),要寫入的文件名稱和格式別名,第一個(gè)參數(shù)如果是相對(duì)路徑,則是相對(duì)于ServerRoot
重點(diǎn):條件日志
使用CustomLog的第三個(gè)參數(shù),規(guī)定環(huán)境變量,先使用SetEnvIf指令設(shè)置環(huán)境變量,SetEnvIf指令由mod_setenvif模塊提供
這里的環(huán)境變量不要和操作系統(tǒng)的混淆了,僅僅用于apache服務(wù)器,可以用來控制條件日志和訪問控制列表
SetEnvIf指令的格式:SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
attrbute是一下三種類別(第三個(gè)不說了)之一:一個(gè)HTTP請(qǐng)求頭域(參見RFC2616);例如:Host, User-Agent, Referer, Accept-Language 。可以用一個(gè)正則表達(dá)式來進(jìn)行匹配。
                          下列請(qǐng)求屬性之一:

                           * Remote_Host 遠(yuǎn)程主機(jī)名(若可用)
                         * Remote_Addr 遠(yuǎn)程主機(jī)IP地址
                    * Server_Addr 接收到請(qǐng)求的服務(wù)器IP地址(2.0.43及以后版本)
                   * Request_Method 所用的請(qǐng)求方法(GET, POST等等)
                    * Request_Protocol 請(qǐng)求所使用的協(xié)議及其版本("HTTP/0.9", "HTTP/1.0", "HTTP/1.1"等)
                    * Request_URI 在HTTP請(qǐng)求行中請(qǐng)求的資源(通常是URL中去除協(xié)議、主機(jī)以及查詢字符串后剩余的部分)。
第二個(gè)參數(shù)regex是一個(gè)Perl兼容的正則表達(dá)式。如果regex是根據(jù)attribute進(jìn)行匹配的,那么剩余的參數(shù)將被評(píng)估。剩余的參數(shù)給出了需要設(shè)置的變量名及其可選的值
我的問題:分開記錄訪問/drupal 和 /wiki的日志
SetEnvIf Request_URI "\/drupal\/" site_drupal
SetEnvIf Request_URI "\/wiki\/" site_wiki
CustomLog /var/log/apache/access_log_drupal combined env=site_drupal
CustomLog /var/log/apache/access_log_wiki combined env=site_wiki
如此,訪問http://ip/drupal/.....的就要記錄到access_log_drupal
2,管道化日志

網(wǎng)上問題:如何將www.domain.com/drupal/目錄轉(zhuǎn)到另外一臺(tái)服務(wù)器上?
我的答案:在drupal下只留一個(gè)index.html,內(nèi)容如下:
<html>
<head>
<meta http-equiv="refresh" content="0;url=http://java7.scut.edu.cn">
</head>
</html>
url修改成另外服務(wù)器的地址,測試通過!
或者用Redirect
Redirect permanent /image http://www.newdomain.com
再就是mod_rewrite了,學(xué)習(xí)中

可信管道化日志,當(dāng)服務(wù)器第一啟動(dòng)時(shí),啟動(dòng)外部程序-日志處理器,子進(jìn)程的日志都寫入日志處理器,中間日志處理器終止了由apache父進(jìn)程重啟,注意,日志處理器會(huì)作為超級(jí)用戶運(yùn)行
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access.log 86400" common    指令規(guī)定管道化日志,第一字符”|“,rotatelogs是日志滾動(dòng)程序,后面是該程序的參數(shù)
當(dāng)然還可以鏈接多個(gè)日志處理器,如下:
CustomLog "|logresolve|split_logs -f /var/log/" common    其中,logresolve會(huì)先將日志中的ip地址轉(zhuǎn)化為主機(jī)名,再法往split
日志滾動(dòng):
利用apache發(fā)行版提供的rotatelogs,接受3個(gè)參數(shù),1為日志文件名,2為運(yùn)行間隔秒數(shù),一天是86400,3為本地時(shí)區(qū)相對(duì)UTC的偏移

第二十一章 磁盤管理
日志文件:
注意存儲(chǔ)日志文件的目錄的許可權(quán),不要其他用戶能接觸日志
建議將日志存在跟web文件不同的磁盤上,因?yàn)橐M可能快的存儲(chǔ)日志,或者日志和站點(diǎn)文件分隔到兩個(gè)不同的磁盤驅(qū)動(dòng)控制器上,另外注意日志文件的大小
計(jì)算機(jī)管理員和Web站點(diǎn)擁有者應(yīng)該不同,

第十五章 虛擬主機(jī)
基于IP的虛擬主機(jī),一臺(tái)機(jī)有多個(gè)ip地址,或相同ip地址上使用多個(gè)端口,收到連接時(shí),根據(jù)地址和端口組合來應(yīng)答
基于名稱的虛擬主機(jī),根據(jù)客戶請(qǐng)求的頭信息判定主機(jī)名,但是HTTP1。1才有主機(jī)頭的
配置:
Listen ip_addr:port
Listen [ipv6_addr]:prot
指令 <VirtualHost ip_addr:prot>,唯一參數(shù)就是虛擬主機(jī)引用的ip地址和端口組合,可以用*替代,組合必須在前面指定過
可以在VirturalHost容器中使用<Directory>指令,DocumentRoot,ServerName,
其中ServerName可以讓接受一個(gè)服務(wù)器名稱和端口組合,這樣可以讓多個(gè)計(jì)算機(jī)報(bào)告他們是代理服務(wù)器,做到信息隱蔽
基于ip的虛擬主機(jī)可以用 _default_ 參數(shù),可以使用所以沒有在另外虛擬主機(jī)中規(guī)定的ip地址
基于名稱的虛擬主機(jī)的配置:
NameVirtualHost指令第一參數(shù)接受ip端口組合,<VirtualHost>中跟隨ip端口組合,然后在容器里面一定要配置ServerName,Apache就能根據(jù)主機(jī)頭和配置的虛擬主機(jī)名提供請(qǐng)求
當(dāng)一個(gè)ip組合有多多個(gè)名稱時(shí),容器里面使用ServerAlias指令;客戶沒有發(fā)送主機(jī)頭,使用配置文件中的第一個(gè)虛擬主機(jī);還可以在容器中使用ServerPath指令,定義一條路徑,當(dāng)沒有發(fā)送主機(jī)頭時(shí),路徑符號(hào),就由該主機(jī)提供服務(wù)
配置同時(shí)兩種主機(jī)
檢查用戶的虛擬主機(jī)配置:apache -t -DDUMP_VHOSTS, 我系統(tǒng)上httpd
3,保持站點(diǎn)分離
各個(gè)虛擬主機(jī)分離日志,在虛擬主機(jī)容器中設(shè)置CustomLog指令就可以,但注意可能會(huì)用完文件描述符
另外的方法使用管道化日志,或完全的后處理程序
獨(dú)立進(jìn)程MPM:
NumServers 5    服務(wù)器能開的總共子進(jìn)程數(shù)目
ChildPerUserID 500 500 2   (確定共享單獨(dú)用戶和組的組合的子進(jìn)程數(shù)目,用戶主服務(wù)器配置中)
AssingUserID 500 500     (僅用于容器中的指令,規(guī)定使用本虛擬機(jī)的用戶和組)
其他子進(jìn)程使用主服務(wù)器的User和Group運(yùn)行,注意NumServer中多余的子進(jìn)程可能不能運(yùn)行任何虛擬主機(jī)的問題

第十四章 站點(diǎn)內(nèi)容增加后所做的工作
1,符號(hào)鏈接
哪個(gè)目錄下打開了 Options FollowSymlinks選項(xiàng),就不會(huì)去對(duì)經(jīng)過的目錄進(jìn)行stat()查詢,可以提高性能,但要注意安全
2,從URI空間映射文件
Alias /awstats /usr/local/awstats     好理解
AliasMatch 運(yùn)行正則表達(dá)式匹配
Redirect permanent(temp,seeother) /test http://www.domain.com,   轉(zhuǎn)向
RedirectTemp,RedirectPermanent,RedirectMatch
3,允許用戶擁有自己的站點(diǎn)
UserDir disable  禁用所有yonghu
UserDir disable/enable [user list]
UserDir public_html      服務(wù)器收到 ~rbb  的請(qǐng)求時(shí),會(huì)查看rbb的主目錄下的public_html目錄
UserDir /usr/web,       。。。。。。。。。。。。。。查看/usr/web/rbb
UserDir /usr/*/web       ......................... 查看/usr/rbb/web
4,使用mod_rewrite
太復(fù)雜了,不管是我的書還是2.2中文手冊(cè)上都感覺太難了閱讀Apache2。0參考手冊(cè)
第九章:
1,配置文件為httpd.conf,也可能為別的名,通過 -f 規(guī)則配置文件,或者規(guī)定目錄代替多個(gè)配置文件,此時(shí)要注意該目錄下沒有不是配置文件的文件
配置文件由指令和參數(shù)構(gòu)成,次序不重要,也由依賴的,指令過長,用 \, 但 \ 后面不能有任何內(nèi)容。指令有作用域
要能閱讀指令文檔,一條指令的文檔中包括語法,上下文(context),狀態(tài)(是指和apache綁定的程度),所在模塊名,另外,deprecated(丟棄)
2,apache定位文件時(shí)依賴于文件系統(tǒng);DocumentRoot,文檔樹的根,最好將其改為ServerRoot以外的目錄;
首先配置文件系統(tǒng)的根,使用 <Directory>容器完成,<>是指令塊,注意目錄設(shè)置的繼承性,所以在設(shè)置文件系統(tǒng)根時(shí)要保守;之后配置文檔樹根了
Options指令9個(gè)選項(xiàng),Indexes(使用索引頁?),F(xiàn)ollowSymLinks(使用符號(hào)連接,改善性能),SymLinksIfOwnerMatch(要Owner匹配才能使用符號(hào)鏈接),
    MultiView(服務(wù)器可以和客戶瀏覽器協(xié)商頁面,比如頁面的語言版本),ExecCGI(服務(wù)器可以在此目錄中執(zhí)行CGI腳本),Includes(可以包含SSI標(biāo)簽解釋文件)
    IncludesNoExec(對(duì)要運(yùn)行外部程序的標(biāo)簽不會(huì)承兌),None,All,好理解;Options中可以使用+,-,等
注意<Directory>和<Location><Files>指令的區(qū)別,作用相似,Directory應(yīng)該總用于磁盤上的目錄,F(xiàn)iles用于單獨(dú)的文件,
    Location應(yīng)該只能夠用于沒有相應(yīng)目錄和文件的請(qǐng)求,比如建立URI,以映射指定的模塊;
    另外三條指令有對(duì)于的Match指令(或者在后面有~),參數(shù)中使用正則表達(dá)式
基本的配置:
Timeout超時(shí),注意衡量自己的網(wǎng)絡(luò)
Keeplive,KeepAliveRequests(一個(gè)連接上有多少請(qǐng)求),KeepAliveTimeout(同一個(gè)連接中下一個(gè)請(qǐng)求的超時(shí))
User,Group,誰在運(yùn)行apache的子程序
MIME類型,注意mod_mime,mod_mime_magic模塊的區(qū)別,可以告訴瀏覽器為正在下載的文件運(yùn)行哪個(gè)程序
通過兩種方法控制服務(wù)器返回的MIME類型,TypesConfig使用外部文件,AddType直接設(shè)置,建議用后者;
  還有表述打包(內(nèi)容編碼:Content-Encoding),打包可以讓文件在發(fā)送前壓縮,加密;還表述使用哪種語言和哪個(gè)字符集,由mod_negotiation選項(xiàng)發(fā)送哪個(gè)版本的文件
3,HTTP請(qǐng)求和響應(yīng)
手工模擬http請(qǐng)求,在我mylinux機(jī)器上做試驗(yàn)
telnet 127.0.0.1 80
GET /index/index.php

注意:以空格行結(jié)束請(qǐng)求
GET /index/index.html.zh-cn.gb2312 HTTP/1.1

后面沒有HTTP版本信息的是HTTP0.9的,只返回頁面,沒有HTTP頭,請(qǐng)求時(shí),還可以指定其他參數(shù),比如
GET /index/index.html.zh-cn.gb2312 HTTP/1.1
Host: localhost

服務(wù)器返回,有http頭,
4,錯(cuò)誤狀態(tài)
  五個(gè)基本類別:信息型,成功,重定向,客戶錯(cuò)誤,服務(wù)器錯(cuò)誤,以狀態(tài)碼的第一位編號(hào)表示:1xx-5xx
定制錯(cuò)誤頁面,只有4xx和5xx的頁面能被替換,使用ErrorDocument配置指令,兩個(gè)參數(shù):錯(cuò)誤代碼,替換頁面

第十章
1,AAA模塊
分清楚三A的區(qū)別,A(認(rèn)證Authentication)A(授權(quán)Authorization)A(帳戶確認(rèn)Accounting)的區(qū)別
1.1認(rèn)證:
有五個(gè)模塊,一類基本的,一類摘要認(rèn)證的,兩條指令,AuthType指定類別:Basic基本,Digest摘要認(rèn)證,AuthName認(rèn)證領(lǐng)域,在認(rèn)證框上提示用戶的
基本認(rèn)證:
當(dāng)瀏覽器訪問基本認(rèn)證保護(hù)的URL時(shí),服務(wù)器先返回401非授權(quán)代碼,同時(shí)在響應(yīng)中增加一個(gè)頭文件-WWW認(rèn)證,此頭文件擁有兩個(gè)關(guān)聯(lián)值,如:
        WWW-Authenticate: Basic realm="Server Infromaion"  ,客戶收到后,詢問名稱口令,再次請(qǐng)求,這次的請(qǐng)求頭包含認(rèn)證頭,頭中包含認(rèn)證類型,名稱,口
    網(wǎng)絡(luò)上傳輸?shù)挠脩裘涂诹?,先有瀏覽器合并用戶名和口令,用冒號(hào)分隔的單獨(dú)字符串,再使用base64算法編碼,注意,這是很容易反轉(zhuǎn)得出原始口令的
摘要認(rèn)證:
現(xiàn)在不是所以瀏覽器都支持,優(yōu)點(diǎn)是不傳輸明文口令。區(qū)別在于上面服務(wù)器返回的頭中WWW認(rèn)證的不同,如下:
        WWW-Authenticate: Digest realm="Server Information",nonce="FikdfiefFkejj-dfdfkfkkf",algorithm=MD5,domain="/",qop="auth"
  其中 nonce當(dāng)前值是跟隨相應(yīng)401代碼隨即生成的唯一值,是摘要認(rèn)證的關(guān)鍵,algorithm默認(rèn)MD5算法,domain標(biāo)識(shí)使用相同認(rèn)證信息的域范圍,qop確定保護(hù)的質(zhì)量,目前apache還只支持auth
客戶瀏覽器進(jìn)行下一此請(qǐng)求:
        Authorization: Digest username="rbb",realm="Server Infromaion",nonce="FikdfiefFkejj-dfdfkfkkf",uri="/server-info",qop="auth",nc=00000001,cnonce="0dfdfdjl",response="fdjfkjkjiefje2343"
  其中,username,realm,好理解,nonce要和服務(wù)器給的一樣,nc值是當(dāng)前值使用次數(shù)的計(jì)數(shù)器,cnonce是客戶生成的唯一字符串,可以讓用戶參與認(rèn)證控制,
     response里是存儲(chǔ)口令的地方,包含用戶名,口令,URI,當(dāng)前值,cnonce,計(jì)數(shù)器等等,通過了指定算法編碼,服務(wù)器不能反轉(zhuǎn),只能重構(gòu)后也通過算法編碼,再校驗(yàn),是否匹配
基本認(rèn)證:
匿名認(rèn)證,通過mod_auth_anon實(shí)現(xiàn)類似ftp站點(diǎn)的驗(yàn)證方式
基于文件的認(rèn)證,有三個(gè)模塊實(shí)現(xiàn)
mod_auth:指令是AuthUserFile,AuthGroupFile,用戶文件類似/etc/passwd,必須使用htpasswd程序添加用戶和口令;組文件格式是組名后跟空格分開的用戶名 , webdev:rbb zKll kfff
基于數(shù)據(jù)庫的認(rèn)證,兩個(gè)模塊:mod_auth_db,mod_auth_dbm,用戶和組信息存在DB或DBM數(shù)據(jù)庫中,指令有AuthDBUserFile,AuthDBMUserFile,AuthDBGroupFile,AuthDBMGroupFile
  通過htdbm(替代dbmmanage)管理數(shù)據(jù)庫中的信息;后面的AuthAuthorizative指令可以讓多個(gè)認(rèn)證模塊工作,默認(rèn)為on,只有第一個(gè)受到調(diào)用的模塊可以認(rèn)證客戶
摘要認(rèn)證:
兩個(gè)模塊:Mod_digest,mod_auth_digest,apache2中已經(jīng)取消了前者;指令有AuthDigestFile,AuthDigestGroupFile,
     groupfile通基本認(rèn)證的相同,AuthDigestFile則不同,使用的程序也不同,利用htdigest程序生成:htdigest [-c] passwdfile realm username ,要指定realm
  AuthDigestDomain指令定義共享相同認(rèn)證信息的域,參數(shù)是空格分開的URI列表;AuthDigestNonceLifetime,nonce當(dāng)前值的有效時(shí)間
1.2授權(quán)
唯一指令Require,由核心實(shí)現(xiàn)的,定義可以訪問指定頁面的用戶集合,3個(gè)參數(shù):user(用戶空格分開) group valid-user(配置的口令文件中的任何用戶都可以)
1.3訪問控制,access control
一個(gè)標(biāo)準(zhǔn)模塊,3個(gè)指令:Allow Deny Order;Allow|Deny from condition,條件有:all,域名稱,ip地址,網(wǎng)絡(luò)/網(wǎng)絡(luò)掩碼,env=環(huán)境變量
              Order指令A(yù)llow和Deny的順序
1.4 綜合認(rèn)證授權(quán)和訪問控制
要確保所以以/開始的URI受到保護(hù),要用 <Location />指令,用DocumentRoot<Directory>只保護(hù)文檔樹中的頁面
Satisfy指令,當(dāng)一個(gè)資源同時(shí)受到認(rèn)證和訪問控制指令限制時(shí)起作用,兩個(gè)參數(shù)Any,All,Any只要通過一個(gè),All兩個(gè)都要通過
另外注意存儲(chǔ)口令信息的位置問題

第二十章 日志
“日志就是金錢”
有三個(gè)日志,Cookie和傳輸日志,和最主要的訪問日志
注意服務(wù)器記錄日志要花費(fèi)時(shí)間,進(jìn)行日志信息越多,時(shí)間越長
1,LogFormat和CustomLog指令
LogFormat指令可以接受一個(gè)單獨(dú)參數(shù)和兩參數(shù),第二個(gè)參數(shù)是別名,可以重用,查表得知參數(shù)的格式說明
CustomLog定義日志文件,兩個(gè)參數(shù),要寫入的文件名稱和格式別名,第一個(gè)參數(shù)如果是相對(duì)路徑,則是相對(duì)于ServerRoot
重點(diǎn):條件日志
使用CustomLog的第三個(gè)參數(shù),規(guī)定環(huán)境變量,先使用SetEnvIf指令設(shè)置環(huán)境變量,SetEnvIf指令由mod_setenvif模塊提供
這里的環(huán)境變量不要和操作系統(tǒng)的混淆了,僅僅用于apache服務(wù)器,可以用來控制條件日志和訪問控制列表
SetEnvIf指令的格式:SetEnvIf attribute regex [!]env-variable[=value] [[!]env-variable[=value]] ...
attrbute是一下三種類別(第三個(gè)不說了)之一:一個(gè)HTTP請(qǐng)求頭域(參見RFC2616);例如:Host, User-Agent, Referer, Accept-Language 。可以用一個(gè)正則表達(dá)式來進(jìn)行匹配。
                          下列請(qǐng)求屬性之一:

                           * Remote_Host 遠(yuǎn)程主機(jī)名(若可用)
                         * Remote_Addr 遠(yuǎn)程主機(jī)IP地址
                    * Server_Addr 接收到請(qǐng)求的服務(wù)器IP地址(2.0.43及以后版本)
                   * Request_Method 所用的請(qǐng)求方法(GET, POST等等)
                    * Request_Protocol 請(qǐng)求所使用的協(xié)議及其版本("HTTP/0.9", "HTTP/1.0", "HTTP/1.1"等)
                    * Request_URI 在HTTP請(qǐng)求行中請(qǐng)求的資源(通常是URL中去除協(xié)議、主機(jī)以及查詢字符串后剩余的部分)。
第二個(gè)參數(shù)regex是一個(gè)Perl兼容的正則表達(dá)式。如果regex是根據(jù)attribute進(jìn)行匹配的,那么剩余的參數(shù)將被評(píng)估。剩余的參數(shù)給出了需要設(shè)置的變量名及其可選的值
我的問題:分開記錄訪問/drupal 和 /wiki的日志
SetEnvIf Request_URI "\/drupal\/" site_drupal
SetEnvIf Request_URI "\/wiki\/" site_wiki
CustomLog /var/log/apache/access_log_drupal combined env=site_drupal
CustomLog /var/log/apache/access_log_wiki combined env=site_wiki
如此,訪問http://ip/drupal/.....的就要記錄到access_log_drupal
2,管道化日志

網(wǎng)上問題:如何將www.domain.com/drupal/目錄轉(zhuǎn)到另外一臺(tái)服務(wù)器上?
我的答案:在drupal下只留一個(gè)index.html,內(nèi)容如下:
<html>
<head>
<meta http-equiv="refresh" content="0;url=http://java7.scut.edu.cn">
</head>
</html>
url修改成另外服務(wù)器的地址,測試通過!
或者用Redirect
Redirect permanent /image http://www.newdomain.com
再就是mod_rewrite了,學(xué)習(xí)中

可信管道化日志,當(dāng)服務(wù)器第一啟動(dòng)時(shí),啟動(dòng)外部程序-日志處理器,子進(jìn)程的日志都寫入日志處理器,中間日志處理器終止了由apache父進(jìn)程重啟,注意,日志處理器會(huì)作為超級(jí)用戶運(yùn)行
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access.log 86400" common    指令規(guī)定管道化日志,第一字符”|“,rotatelogs是日志滾動(dòng)程序,后面是該程序的參數(shù)
當(dāng)然還可以鏈接多個(gè)日志處理器,如下:
CustomLog "|logresolve|split_logs -f /var/log/" common    其中,logresolve會(huì)先將日志中的ip地址轉(zhuǎn)化為主機(jī)名,再法往split
日志滾動(dòng):
利用apache發(fā)行版提供的rotatelogs,接受3個(gè)參數(shù),1為日志文件名,2為運(yùn)行間隔秒數(shù),一天是86400,3為本地時(shí)區(qū)相對(duì)UTC的偏移

第二十一章 磁盤管理
日志文件:
注意存儲(chǔ)日志文件的目錄的許可權(quán),不要其他用戶能接觸日志
建議將日志存在跟web文件不同的磁盤上,因?yàn)橐M可能快的存儲(chǔ)日志,或者日志和站點(diǎn)文件分隔到兩個(gè)不同的磁盤驅(qū)動(dòng)控制器上,另外注意日志文件的大小
計(jì)算機(jī)管理員和Web站點(diǎn)擁有者應(yīng)該不同,

第十五章 虛擬主機(jī)
基于IP的虛擬主機(jī),一臺(tái)機(jī)有多個(gè)ip地址,或相同ip地址上使用多個(gè)端口,收到連接時(shí),根據(jù)地址和端口組合來應(yīng)答
基于名稱的虛擬主機(jī),根據(jù)客戶請(qǐng)求的頭信息判定主機(jī)名,但是HTTP1。1才有主機(jī)頭的
配置:
Listen ip_addr:port
Listen [ipv6_addr]:prot
指令 <VirtualHost ip_addr:prot>,唯一參數(shù)就是虛擬主機(jī)引用的ip地址和端口組合,可以用*替代,組合必須在前面指定過
可以在VirturalHost容器中使用<Directory>指令,DocumentRoot,ServerName,
其中ServerName可以讓接受一個(gè)服務(wù)器名稱和端口組合,這樣可以讓多個(gè)計(jì)算機(jī)報(bào)告他們是代理服務(wù)器,做到信息隱蔽
基于ip的虛擬主機(jī)可以用 _default_ 參數(shù),可以使用所以沒有在另外虛擬主機(jī)中規(guī)定的ip地址
基于名稱的虛擬主機(jī)的配置:
NameVirtualHost指令第一參數(shù)接受ip端口組合,<VirtualHost>中跟隨ip端口組合,然后在容器里面一定要配置ServerName,Apache就能根據(jù)主機(jī)頭和配置的虛擬主機(jī)名提供請(qǐng)求
當(dāng)一個(gè)ip組合有多多個(gè)名稱時(shí),容器里面使用ServerAlias指令;客戶沒有發(fā)送主機(jī)頭,使用配置文件中的第一個(gè)虛擬主機(jī);還可以在容器中使用ServerPath指令,定義一條路徑,當(dāng)沒有發(fā)送主機(jī)頭時(shí),路徑符號(hào),就由該主機(jī)提供服務(wù)
配置同時(shí)兩種主機(jī)
檢查用戶的虛擬主機(jī)配置:apache -t -DDUMP_VHOSTS, 我系統(tǒng)上httpd
3,保持站點(diǎn)分離
各個(gè)虛擬主機(jī)分離日志,在虛擬主機(jī)容器中設(shè)置CustomLog指令就可以,但注意可能會(huì)用完文件描述符
另外的方法使用管道化日志,或完全的后處理程序
獨(dú)立進(jìn)程MPM:
NumServers 5    服務(wù)器能開的總共子進(jìn)程數(shù)目
ChildPerUserID 500 500 2   (確定共享單獨(dú)用戶和組的組合的子進(jìn)程數(shù)目,用戶主服務(wù)器配置中)
AssingUserID 500 500     (僅用于容器中的指令,規(guī)定使用本虛擬機(jī)的用戶和組)
其他子進(jìn)程使用主服務(wù)器的User和Group運(yùn)行,注意NumServer中多余的子進(jìn)程可能不能運(yùn)行任何虛擬主機(jī)的問題

第十四章 站點(diǎn)內(nèi)容增加后所做的工作
1,符號(hào)鏈接
哪個(gè)目錄下打開了 Options FollowSymlinks選項(xiàng),就不會(huì)去對(duì)經(jīng)過的目錄進(jìn)行stat()查詢,可以提高性能,但要注意安全
2,從URI空間映射文件
Alias /awstats /usr/local/awstats     好理解
AliasMatch 運(yùn)行正則表達(dá)式匹配
Redirect permanent(temp,seeother) /test http://www.domain.com,   轉(zhuǎn)向
RedirectTemp,RedirectPermanent,RedirectMatch
3,允許用戶擁有自己的站點(diǎn)
UserDir disable  禁用所有yonghu
UserDir disable/enable [user list]
UserDir public_html      服務(wù)器收到 ~rbb  的請(qǐng)求時(shí),會(huì)查看rbb的主目錄下的public_html目錄
UserDir /usr/web,       。。。。。。。。。。。。。。查看/usr/web/rbb
UserDir /usr/*/web       ......................... 查看/usr/rbb/web
4,使用mod_rewrite
太復(fù)雜了,不管是我的書還是2.2中文手冊(cè)上都感覺太難了
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
apache指令大全(中國開源項(xiàng)目) 中國開源項(xiàng)目
解決Apache日志文件ACCESS.LOG日益膨脹的一個(gè)辦法: 數(shù)據(jù)庫 站長之家
apache WebDAV 服務(wù)器配置指南
LAMP應(yīng)用架構(gòu)部署指南III--Apache安裝及設(shè)置(二)
mod_log_config - Apache 2.2 中文版參考手冊(cè)
Apache的環(huán)境變量
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服