LAMP架构十一( Apache访问日志切割)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sj349781478/article/details/84628806

十一、访问日志切割

日志一直记录总有一天会把整个磁盘沾满,所以有必要让它自动切割,并删除老的日志文件。保证磁盘永远写不满,且更方便的管理日志。
rotatelogs是apache自带的日志切割工具,配置访问日志交由rotatelogs处理:


[root@global ~]# /etc/httpd/conf.d/virtual.conf
虚拟主机增加日志记录规则:
<VirtualHost *:8090>                                                                            80是http的服务端口,不用改
 ServerAdmin [email protected]                                                    网站管理员邮箱,可不填写
 DocumentRoot "/var/www/html/a"                                                        虚拟主机根目录放网站程序
    ServerName a.com                                                                           网站名,域名                  
    ServerAlias www.a.com                                                                    网站别名,域名别名,可写多个要用空格隔开 
    <IfModule mod_rewrite.c>                                                                重定向功能:需要mod_rewrite模块支持
        RewriteEngine on                                                                                              打开rewrite功能
        RewriteCond %{HTTP_HOST} !^www.a.com$                              将非www.a.com的域名请求进行跳转
        RewriteRule ^/(.*)$ http://www.baidu.com/$1 [R=301,L]                 状态码301永久跳转,L=last,跳一次
                                                   定义跳转规则,将以^/(.*)$开头结尾的域名请求跳转,$1代表^/(.*)$
    </IfModule>
    ErrorLog "logs/test.com-error_log"                                                                     错误日志保存路径
    SetEnvIf Request_URI ".*\.gif$" img                                             日志记录规则,变量表示.gif文件
    SetEnvIf Request_URI ".*\.jpg$" img                                            日志记录规则,变量表示.jpg文件
    SetEnvIf Request_URI ".*\.png$" img                                            日志记录规则,变量表示.png文件
    SetEnvIf Request_URI ".*\.bmp$" img                                          日志记录规则,变量表示.bmp文件
    SetEnvIf Request_URI ".*\.swf$" img                                           日志记录规则,变量表示.swf文件
    SetEnvIf Request_URI ".*\.js$" img                                               日志记录规则,变量表示.js文件
    SetEnvIf Request_URI ".*\.css$" img                                             日志记录规则,变量表示.cs文件
    CustomLog "| /usr/sbin/rotatelogs -l logs/a.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>  

注意最前面有个竖杠,!感叹号是取反,-l是为了让它以当前系统时间为准,如果不指定。他会以utc时间为基准;不记录变量所表示的文件访问记录,并将日志交由rotatelogs处理,%Y%m%d分别年月日.log格式保存,且规定每86400秒保存一次,86400秒=1天

测试语法并重新加载配置
 [root@global conf.d]# /usr/sbin/apachectl  -t
Syntax OK
 [root@global conf.d]# /usr/sbin/apachectl  graceful

查看日志文件

原先的日志信息

产生日志,按照时间生成了20181129的日志

猜你喜欢

转载自blog.csdn.net/sj349781478/article/details/84628806
今日推荐