Apache 访问日志管理

简介:

访问日志不记录静态文件

网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录到访问日志中。

  • 编辑httpd虚拟主机配置文件“httpd-vhosts.conf”

    [root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
    ......
    <VirtualHost :80>
    ServerAdmin webmaster@dummy-host2.example.com
    DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "logs/dummy-host2.example.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/dummy-host2.example.com-access_log" combined env=!img

    在combined 后添加env=!img

    </VirtualHost>

  • 检测并加载配置文件

    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
    Syntax OK
    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

    重新加载后使用curl访问img变量中所指定格式的文件内容时将不会产生访问记录。

测试结果:使用curl访问png等格式文件时日志不会记录访问信息。访问其它格式仍然会记录访问信息。使用浏览器访问亦如此。

访问日志切割

日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件。

  • 修改httpd虚拟主机配置文件

    [root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    ……
    <VirtualHost *:80>
    .....
    按下面修改日志文件路径:
    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”。

    #86400为一天的秒数,如果是一小时切割一次就是3600.

说明: rotatelogs是Apache切割日志的工具;-l表示使用系统(CST=Chinese time)时间,如果不加-l选项,将以默认的(UTC)时间为准;日志文件名“%Y%m%d”表示年月日;时间间隔设定为一天(1day=24h=1440min=86400s)。

  • 检测并重新加载配置文件.

    [root@localhost 111.com]# /usr/local/apache2.4/bin/apachectl -t
    Syntax OK
    [root@localhost 111.com]# /usr/local/apache2.4/bin/apachectl graceful

  • 测试

    访问:
    [root@localhost ~]# curl -x192.168.8.131:80 111.com/http.jpg -I
    查看日志:
    [root@localhost 111.com]# ls /usr/local/apache2.4/logs/
    111.com-access_20170801.log 111.com-error_log abc.com-error_log error_log
    111.com-access_log abc.com-access_log access_log httpd.pid

注意:需要配合计划任务使用,定期清理日志文件,避免日志文件累计导致磁盘空间不足。

静态元素过期时间

当浏览器访问网站时会把静态文件(如图片文件、css、js文件等)缓存到本地电脑,这样下次访问的时候就不用去远程下载了,可以自定义清除该部分缓存的时间,即设定静态元素过期时间。该设置可用于优化网站,特别是公司内网。

  • 编辑虚拟主机配置文件

    增加expires模块。

    [root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    添加expires模块:
    ......
    <IfModdule 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 hours" 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>
    ......

  • 检测apache是否加载了expires模块

    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expires

如果没有加载模块则需要修改apache主配置文件httpd.cnf

[root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
......
LoadModule expires_module modules/mod_expires.so
......

取消expires这行的注释即可。

  • 检测并重载配置文件

    检测expires模块是否开启:
    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expires
    expires_module (shared)
    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
    Syntax OK
    [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful

  • 测试

    访问uu.com下的1.png

    [root@localhost ~]# curl -x192.168.159.128:80 uu.com/1.png -I
    HTTP/1.1 200 OK
    Date: Thu, 21 Dec 2017 07:19:39 GMT
    Server: Apache/2.4.29 (Unix) PHP/7.1.6
    Last-Modified: Thu, 21 Dec 2017 05:51:30 GMT
    ETag: "182ab-560d34aad6f28"
    Accept-Ranges: bytes
    Content-Length: 98987
    Cache-Control: max-age=86400
    Expires: Fri, 22 Dec 2017 07:19:39 GMT
    Content-Type: image/png

当前时间“Date: Thu, 21 Dec 2017 07:19:39 GMT”,缓存时长“Cache-Control: max-age=86400s”,失效时间“Expires: Fri, 22 Dec 2017 07:19:39 GMT GMT”,即png格式图片缓存时长为1天。




本文转自 豆渣锅 51CTO博客,原文链接:

http://blog.51cto.com/754599082/2053092
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
4月前
|
存储 算法 数据挖掘
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(2)
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(2)
102 1
|
4月前
|
存储 安全 数据挖掘
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(1)
带你读《Apache Doris 案例集》——06 Apache Doris 助力中国联通万亿日志数据分析提速10倍(1)
|
4月前
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
|
4月前
|
SQL 存储 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
110 0
|
1月前
|
存储 消息中间件 监控
Zoom 基于Apache Hudi 的流式日志处理实践
Zoom 基于Apache Hudi 的流式日志处理实践
44 1
|
5月前
|
存储 监控 安全
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
Apache Doris 助力奇安信建设全新日志存储分析平台,提升系统安全性与快速响应能力!
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
|
8月前
|
安全 druid Java
【紧急】Apache Log4j任意代码执行漏洞安全风险升级修复教程
近期一个 Apache Log4j 远程代码执行漏洞细节被公开,攻击者利用漏洞可以远程执行代码。经过分析,该组件存在Java JNDI注入漏洞,当程序将用户输入的数据进行日志,即可触发此漏洞,成功利用此漏洞可以在目标服务器上执行任意代码。
209 1
|
8月前
|
存储 安全 数据挖掘
Apache Doris 助力中国联通万亿日志数据分析提速 10 倍
Apache Doris 助力联通实现万亿日志数据分析场景落地,存储降低 50%,性能提升10+倍
|
8月前
|
Apache
Apache相关配置----日志管理
Apache相关配置----日志管理
154 0
|
10月前
|
自然语言处理 运维 监控
[2.0快速体验]Apache Doris 2.0 日志分析快速体验
应用程序、服务器、云基础设施、IoT 和移动设备、DevOps、微服务架构—最重要的业务和 IT 发展趋势帮助我们以前所未有的方式优化运维和客户体验。但这些趋势也导致由机器生成的数据出现爆炸式成长,其中包括日志和指标等,例如,用户交易、客户行为、传感器活动、机器行为和安全威胁等。这些数据十分复杂,但同时也最为重要,因为它们包含关于 IT、安全和业务的运维情报。 日志分析涉及到对由您的 IT 系统和技术基础设施生成的机器数据进行搜索、分析与可视化,以便获得运维方面的见解。传统的数据分析工具已不能胜任如此多样性而且快速增加的机器数据的处理工作。 日志数据在不断增长。如果没有一个整体的、具有成本
601 0

热门文章

最新文章

推荐镜像

更多