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

相关文章
相关标签/搜索