Linux服務器:關于Apache配置和日志 |
發布時間: 2012/8/11 11:13:05 |
1、設置環境變量
在apache里面,你可以用正則來判斷很多變量,然后設定另外一個變量以便后面的配置使用 比如你要判斷用戶是否訪問某個文件夾,然后設定一個變量記錄一下: SetEnvIfNoCaseRequest_URI"^\/aslibra"ISSTART=1 SetEnvIfNoCase是指不區分大小寫 Request_URI匹配一下"^\/aslibra" 如果是的話,那ISSTART=1,否則就不是1 另外,不記錄圖片的日志可以是找一下文件路徑,然后設定變量供后面使用: SetEnvNOFILES1 CustomLoglogs/access_logcombinedenv=!NOFILES 2、處理盜鏈 處理盜鏈一般是在referrer上做判斷,見下面這個例子: SetEnvIfNoCaseReferer"^http://www\.aslibra\.com/"local_ref=1 OrderAllow,Deny Allowfromenv=local_ref Allowfrom127.0.0.1 上面是判斷來源是上面域名,然后設定為允許訪問 SetEnvIfNoCaseReferer"^http://notpermit\.aslibra\.com/"aaa OrderAllow,Deny Allowfromall Denyfromenv=aaa 上面是判斷來源,然后不允許該域名 3、日志分割 日志分割可以使用cronolog來處理 安裝就比較容易了,跟一般軟件一樣安裝 定義格式: LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combined LogFormat"%h%l%u%t\"%r\"%>s%b"common LogFormat"%{Referer}i->%U"referer LogFormat"%{User-agent}i"agent LogFormat"%h%{%T}t\"%r\"%{cookiename}C"record 上面是定義日志格式,你可以定義很多日志格式,以便后面的記錄日志使用 比如普通的是combined,有一般要采集的內容,如果要采集cookie(%{cookiename}C)和自定義時間格式(%{%T}t),可以使用上面類似record的寫法 CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/www.aslibra.com.%m%d%H"record CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H"combined 以上的例子就是調用cronolog存儲日志,后面的參數是自己定義的日志格式 當然,你還可以自定義記錄很多條件的日志,比如僅僅要記錄/aslibra開始的請求: SetEnvIfNoCaseRequest_URI"^\/aslibra"ISSTART=1 CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H"recordenv=ISSTART 可以幾個CustomLog一起記錄的,以此類推就好了。 本文出自:億恩科技【www.sunshares.net】 |