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一起記錄的,以此類推就好了。
(責任編輯:A6)
[火星人 ] Linux伺服器應用:關於Apache配置和日誌已經有422次圍觀