lamp(六)——访问日志更多配置

11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间

屏蔽一些元素记录到日志

网站大多元素为静态文件,如图片、css、js等,访问一个页面可能记录一堆日志。这样即不方便查看日志,也造成日志占磁盘空间。这些元素可以不用记录。把虚拟主机配置文件改成如下:

<VirtualHost *:80>
   DocumentRoot "/data/wwwroot/www.123.com"
   ServerName www.123.com
   ServerAlias 123.com
   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 "logs/123.com-access_log" combined env=!img
</VirtualHost>

结构其实很简单,定义标签,然后在访问日志那一行配置设置env=!img。img是标签名,可以自定义。记得设置完重新加载配置文件。

mkdir /data/wwwroot/www.123.com/images创建目录,并在这目录下上传一个图片。然后curl -x127.0.0.1:80 -I 123.com/images/123.jpg测试,查看日志tail /usr/local/apache2.4/logs/123.com-access_log是否屏蔽了jpg的标签。

日志切割

日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件
把虚拟主机配置文件改成如下:

<VirtualHost *:80>
   DocumentRoot "/data/wwwroot/www.123.com"
   ServerName www.123.com
   ServerAlias 123.com
   CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l  logs/123.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>

rotatelogs是apache自带的日志切割工具,参数-l指定使用系统时间(中国使用cst),不指定的话使用utc。最后重新加载配置文件,curl做一个访问。然后查看是否生成新日志, ls /usr/local/apache2.4/logs

静态元素过期时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。除了图片,还有css等静态元素,其过期时间是在server端定义的,做好过期时间可以有效降低服务器压力。

状态码304,就是没有改变。如果不设置过期时间就会一直保存在本地。这样不利于网站提供服务,比如后期静态元素变化,但是用户很有可能只能查看到之前的内容。

过期时间配置需要expires_module模块,记得在httpd.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>

curl测试,可以看到“cache-control: max-age”字样。使用浏览器(chrome、firefox),按f12也可以查看到过期时间相关信息。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,271评论 19 139
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 11,033评论 0 9
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong阅读 22,824评论 1 92
  • 生命于此,在朦胧中忧疑。 是负担,却甜蜜无比。 每一天都有那么美丽,我怕时间匆匆,这份感动会被淡忘;更怕须臾当下,...
    Lucky感谢爱阅读 3,064评论 0 2
  • 最近被苏享茂跳楼事件刷屏,一个公司的CEO因为网上征婚闪婚闪离,被骗上千万,还被纠缠恐吓,最后跳楼的故事...
    莱夫子阅读 2,622评论 0 0

友情链接更多精彩内容