设为首页 收藏本站
查看: 3991|回复: 0

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

[复制链接]

尚未签到

发表于 2018-11-18 08:10:35 | 显示全部楼层 |阅读模式
一、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会被记录,
DSC0000.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
添加:

    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"

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
  






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636390-1-1.html 上篇帖子: Apache 访问日志管理 下篇帖子: apache访问日志管理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表