1、設置環境變量
在apache裡面,你可以用正則來判斷很多變量,然後設定另外一個變量以便後面的配置使用
比如你要判斷用戶是否訪問某個文件夾,然後設定一個變量記錄一下:
SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1
SetEnvIfNoCase 是指不區分大小寫
Request_URI匹配一下 "^\/aslibra"
如果是的話,那ISSTART=1,否則就不是1
另外,不記錄圖片的日志可以是找一下文件路徑,然後設定變量供後面使用:
SetEnv NOFILES 1
CustomLog logs/access_log combined env=!NOFILES
2、處理盜鏈
處理盜鏈一般是在referrer上做判斷,見下面這個例子:
SetEnvIfNoCase Referer "^http://www\.aslibra\.com/" local_ref=1
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
上面是判斷來源是上面域名,然後設定為允許訪問
SetEnvIfNoCase Referer "^http://notpermit\.aslibra\.com/" aaa
Order Allow,Deny
Allow from all
Deny from env=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 開始的請求:
SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1
CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H" record env=ISSTART
可以幾個CustomLog一起記錄的,以此類推就好了。