維護web伺服器最重要的就是要每天都關注網站的訪問日誌,但是每天面對幾百兆的日誌文件實在是非常頭大,所以可以從根源上給日誌減肥一下,讓日誌只記錄對自己有用的內容就變得非常重了.
Nginx伺服器要修改這個配置是非常簡單的,反而apache比較麻煩,網上類似的文章也比較少,最後自己研究了一下apache2.2x的手冊才發現原因,原來是因為apache的手冊草草了事說的不明不白的,因此導致很多人知道apache有這個功能,但是具體如何設定卻是很多人都不知道,昨天晚上花了一些時間仔細研究了一下,最後發現可以用下邊的代碼設定虛擬機,并可達到給日誌文件減肥的目的,好了廢話不多說了,直接上代碼:
ServerName 7.7di.net
ServerAlias 127.0.0.1
DocumentRoot /var/www/7.7di.net
ErrorLog /var/log/httpd/7.7di.net-error.log
DirectoryIndex index.html index.htm index.php
ServerAdmin see7di#gmail.com
ErrorDocument 404 /404.html
SetEnvIf Remote_Addr "127\.0\.0\." dontlog
SetEnvIf Remote_Addr "10\.20\.30\." dontlog
SetEnvIf Remote_Addr "::1" dontlog
SetEnvIf Request_URI "\.(txt|ico|png|bmp|css|js|gif|jpg|swf)$" dontlog
CustomLog /var/log/httpd/7.7di.net-access.log common env=!dontlog
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
接下來我簡單的說明一下以上配置的意義:
ServerName 7.7di.net 為虛擬站點設置域名
ServerAlias 127.0.0.1 為虛擬站點設定其他的域名
DocumentRoot /var/www/7.7di.net 虛擬站點實際存放的物理路徑
ErrorLog /var/log/httpd/7.7di.net-error.log 虛擬站點的錯誤日誌及存放位置
DirectoryIndex index.html index.htm index.php 為虛擬站點指定首頁入口文件
ServerAdmin see7di#gmail.com 設定站長email
ErrorDocument 404 /404.html 設定404錯誤頁
SetEnvIf Remote_Addr "127.0.0." dontlog 若來訪者是本機則不寫入日誌
SetEnvIf Remote_Addr "10.20.30." dontlog 若來訪者來自公司內部局域網則不寫入日誌
SetEnvIf Remote_Addr "::1" dontlog 若來訪者是本機,則不寫入日誌
SetEnvIf Request_URI ".(txt|ico|png|bmp|css|js|gif|jpg|swf)$" dontlog 若用戶訪問的文件類型是txt|ico|png|bmp|css|js|gif|jpg|swf則不寫入日誌
CustomLog /var/log/httpd/7.7di.net-access.log common env=!dontlog 記錄訪問日誌(排除上邊的四個條件)