apache日誌管理

1、訪問日誌不記錄靜態文件:

網站大多元素爲靜態文件,如圖片,css,js等,這些元素能夠不記錄。javascript

1.修改虛擬主機配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.confcss

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img 
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img  
    #以上爲定義變量:將全部關於圖片的請求定義爲變量img
    CustomLog "logs/111.com-access_log" combined env=!img
    #「env=!img」表示非img變量。本行命令的含義是:不記錄關於變量img的請求日誌。
</VirtualHost>

將全部訪問圖片格式的請求定義爲變量img,在訪問日誌中排除img部分。java

 

2.從新加載配置文件:apache

/usr/local/apache2.4/bin/apachectl -t瀏覽器

/usr/local/apache2.4/bin/apachectl graceful緩存

 

3.測試:bash

curl -x127.0.0.1:80 111.com/xxxxx -I       app

curl -x127.0.0.1:80 111.com/xxxxx.jpg -Icurl

執行以上兩條命令,正常狀況下在/usr/local/apache2.4/logs/111.com-access.log日誌中只會存在xxxxx的訪問記錄,xxxxx.jpg的訪問不會記錄到日誌中。工具

 

2、訪問日誌切割

日誌一直在記錄,總會有堵滿磁盤的時候,因此須要讓日誌自動切割,並刪除舊的日誌文件。

 

1.編輯虛擬主機配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>
    ErrorLog "logs/111.com-error_log"
    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img 
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img  
    CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
    #使用rotatelogs工具,以系統時間爲基準,天天切割一第二天志,而且日誌名字格式爲「111.com-access_%Y%m%d.log」。
    
    #每小時切割一第二天志,語法: 
    #CustomLog "|/usr/local/apache2.4/bin/rotatelogs logs/access_%Y%m%d%H.log 3600" combined

 

2.從新加載配置文件:

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

 

3.配合cron定時刪除久日誌

 

3、靜態元素過時時間

當瀏覽器訪問網站時會把靜態文件(如圖片文件、css、js文件等)緩存到本地電腦,這樣下次訪問的時候就不用去遠程下載了,能夠自定義清除該部分緩存的時間,即設定靜態元素過時時間。該設置可用於優化網站,特別是公司內網。

 

1.編輯虛擬主機配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_HOST} !^111.com$
        RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
    </IfModule>

<IfModule mod_expires.c>
    ExpiresActive on  
    #打開該功能的開關 
    ExpiresByType image/gif  "access plus 1 days"
    ExpiresByType image/jpeg "access plus 24 hours"
    ExpiresByType image/png "access plus 24 hours"
    ExpiresByType text/css "now plus 2 hour"
    ExpiresByType application/x-javascript "now plus 2 hours"
    ExpiresByType application/javascript "now plus 2 hours"
    ExpiresByType application/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
    #以上是定義不一樣類型的文件緩存的時間
</IfModule>
    ErrorLog "logs/111.com-error_log"
    SetEnvIf Request_URI ".*\.gif$" img
    SetEnvIf Request_URI ".*\.jpg$" img 
    SetEnvIf Request_URI ".*\.png$" img
    SetEnvIf Request_URI ".*\.bmp$" img
    SetEnvIf Request_URI ".*\.swf$" img
    SetEnvIf Request_URI ".*\.js$" img
    SetEnvIf Request_URI ".*\.css$" img  
    CustomLog "|usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
    #使用rotatelogs工具,以系統時間爲基準,天天切割一第二天志,而且日誌名字格式爲「111.com-access_%Y%m%d.log」。

 

2.檢查expires模塊是否開啓並從新加載配置文件:

/usr/local/apache2.4/bin/apachectl -M |grep expires

若沒開啓,編輯主配置文件:/usr/local/apache2.4/conf/httpd.conf;搜expires,去掉行前#

/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

 

3.測試:

使用curl -x192.168.8.131:80 111.com/baidu.png -I

相關文章
相關標籤/搜索