LAMP架构(apache访问日志不记录静态文件,静态元素过期时间,apache日志切割)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一、apache访问日志不访问静态文件

浏览器打开后按f12会会出现一个界面,点network,会出现很多请求,访问日志里会记载,有些静态的图片或者文件也会记载,太浪费磁盘空间和磁盘io。所以我们要让日志不记录静态文件

[root@abc ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

    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

定义这些以gif.jgp,png,bmp.swf.js.css结尾的文件为env。

在CustomLog "logs/111.com-access_log" combined 这一行的最后加上env=!img,表示把除了img的文件记录到日志里。

检查语法错误并退出。


实验:

curl -x127.0.0.1:80 111.com/sadaddas.png1  

curl -x127.0.0.1:80 111.com/sadaddas.png    

访问png1和png两个文件,看看日志会记录哪个?

结果为:png不会被记录,png1会被记录,

1.png

或者上传一张以png结尾的图片在目录里,用浏览器访问,结果还是没有日志


二、apache访问日志切割


日志一直记录总有一天会把整个磁盘沾满,所以有必要让它自动切割,并删除老的日志文件。保证磁盘永远写不满,且更方便的管理日志

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

修改  ustomLog "logs/111.com-access_log" combined env=!img   为:

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_log" combined env=!img

rotatelogs是apache自带的日志切割工具。-l是为了让它以当前系统时间为准,如果不指定。他会以utc时间为基准。

而且根据时间日期还要让他文件有不同的名字。修改111.com-access_log为111.com-access%Y%m%d.log

%Y%m%d分别表示年月日.

还要规定什么时间去切割。一天是86400秒,日志名后面加上86400

检查语法错误并退出。


实验:

访问一个不是静态文件的网址内容

[root@abc ~]# curl -x127.0.0.1:80 111.com/dsd.png1    

发现日志目录里多了一个以当天时间为名的日志文件,里面记录的则是刚Curl的

[root@abc ~]# ls /usr/local/apache2.4/logs/

111.com-access20171126.log  111.com-access_log  111.com-error_log  abc.com  abc.com-access_log  access_log  error_log  httpd.pid

[root@abc ~]# cat /usr/local/apache2.4/logs/111.com-access20171126.log 

127.0.0.1 - - [26/Nov/2017:15:28:31 +0800] "GET HTTP://111.com/dsd.png1 HTTP/1.1" 404 206 "-" "curl/7.29.0"


三、静态元素过期时间

配置静态文件元素过期时间

浏览器访问网站图片时会把静态文件缓存在本地电脑里。这样下次访问就不用再去远程下载了。


实验:

可以在目录里放一个图片,然后用浏览器去访问,且访问之前先F12打开管理页面,点开Network

可以发现,第一次访问时,状态码为200,表示正正常

第二次访问时,状态码为304 Not Modified 表示本地有缓存,且没有修改,所以不需要从新下载。

这样可以节省带宽,但是没有规定失效日期且什么时候清理缓存。


修改:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 

添加:

<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>

expire是apache的一个模块。设置过期时间

检查apache有没有这个模块

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

如果没有,则需要到主配置文件里修改

搜索expire

在109行,把前面的注释符去掉

保存退出

检查语法错误并重启服务

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

 expires_module (shared)

apache加载了这个模块。


实验:

ctrl+f5可以强制刷新,把本地缓存清空

再访问图片是状态码显示为200,且下面有cache-control,过期时间为86400秒,也就是一天,还会告诉你过期日期的时间expires,但是时区是GMT.


[root@abc 111.com]# curl -x127.0.0.1:80 111.com/1.png -I

HTTP/1.1 200 OK

Date: Sun, 26 Nov 2017 08:04:11 GMT

Server: Apache/2.4.28 (Unix) PHP/5.6.30

Last-Modified: Sun, 26 Nov 2017 07:07:52 GMT

ETag: "7913-55edd71b4a200"

Accept-Ranges: bytes

Content-Length: 30995

Cache-Control: max-age=86400

Expires: Mon, 27 Nov 2017 08:04:11 GMT

Content-Type: image/png











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/2053108,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
4月前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
1月前
|
监控 应用服务中间件 定位技术
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
要统计Nginx的客户端IP,可以通过分析Nginx的访问日志文件来实现
|
2月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
2月前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
110 3
|
3月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
48 9
|
3月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
76 3
|
3月前
|
存储 SQL 缓存
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
从 3.0 系列版本开始,Apache Doris 开始支持存算分离模式,用户可以在集群部署时选择采用存算一体模式或存算分离模式。基于云原生存算分离的架构,用户可以通过多计算集群实现查询负载间的物理隔离以及读写负载隔离,并借助对象存储或 HDFS 等低成本的共享存储系统来大幅降低存储成本。
Apache Doris 3.0 里程碑版本|存算分离架构升级、湖仓一体再进化
|
3月前
|
消息中间件 分布式计算 druid
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
大数据-154 Apache Druid 架构与原理详解 基础架构、架构演进
77 2
|
3月前
|
存储 消息中间件 druid
大数据-150 Apache Druid 安装部署 单机启动 系统架构
大数据-150 Apache Druid 安装部署 单机启动 系统架构
52 1

推荐镜像

更多