分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

85.Apache(httpd)配置--日志控制与静态元素过期时间配置

发布时间:2023-09-06 01:45责任编辑:胡小海关键词:配置http
访问日志不记录静态文件

很多网站大多为静态网页,网页内部的图片、css文件等同样有其网址链接,如果不设置,这些无效的信息也将被存入访问日志中,会导致访问日志文件大小快速增加,占用大量存储空间。我们可以通过设置不记录某些文件来减少无效信息,节省内存资源。
那么具体怎么操作呢?按照下面例子操作即可:

步骤:编辑虚拟主机配置文件

[root@zlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf ???ErrorLog "logs/123test-error_log" ???#以下为定义变量:将所有关于图片,css,js的请求定义为变量img ???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 ???# "env=!img"表示非img变量。意思是:不记录关于变量img的请求日志。 ???CustomLog "logs/123test-access_log" combined env=!img[root@zlinux ~]# /usr/local/apache2/bin/apachectl -tSyntax OK[root@zlinux ~]# /usr/local/apache2/bin/apachectl graceful
将所有访问图片的请求定义为变量img,在访问记录(日志)中将其排除即可。重新加载后使用curl访问img变量中所指定格式的文件内容时将不会产生访问记录。

二、访问日志切割

随着服务器的运行,访问日志文件大小也将会不断变大,日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件步骤1:编辑虚拟主机配置文件[root@zlinux ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/123test-access_log_%Y%m%d_log 86400" combined env=!img# /usr/local/apache2.4/bin/rotatelogs工具是apache自带的分割日志的工具# -l参数按当前系统时间为基准进行切割(我国为CST),否则默认UTC# %Y%m%d表示年月日,这样会每天记录一个带日期的日志文件,更方便# 86400(s)表示每天都进行切割,一天24小时等于86400秒 [root@zlinux ~]# /usr/local/apache2/bin/apachectl -tSyntax OK[root@zlinux ~]# /usr/local/apache2/bin/apachectl graceful做几次加以访问,查看具体效果:

步骤2:定期删除老日志

[root@zlinux logs]# crontab -e ????//指定计划任务,此仅为本人测试使用,供参考。11 21 * * * /usr/bin/find /usr/local/apache2/logs/ -regex ".*/123test-access_log_.*_log" -mmin +5 -exec rm -f {} \;//说明1:每天21点11分删除五分钟前日志文件//说明2:已经在httpd-vhosts.conf中设置每一分钟切割一次日志//说明3:使用-regex时有一点要注意:-regex不是匹配文件名,而是匹配完整的文件名(包括路径)。例如,当前目录下有一个文件"abar9",如果你用"ab.*9"来匹配,将查找不到任何结果,正确的方法是使用".*ab.*9"或者".*/ab.*9"来匹配。这里/logs/表示当前目录,所以后面日志格式写成“.*/123test-access_log_.*_log”

三、设置静态文件失效时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。
但是缓存多久呢?如果网站图片更新了呢,那么应该访问新图片才是。所以这就涉及到静态文件缓存时长的问题了,也就是“缓存过期时间”。

步骤1:启用expires模块

[root@zlinux logs]# vim /usr/local/apache2/conf/httpd.confLoadModule expires_module modules/mod_expires.so ??//去掉#[root@zlinux logs]# /usr/local/apache2/bin/apachectl -M | grep -i expire ??//检查模块是否加载 expires_module (shared)步骤2:修改虚拟主机配置文件[root@zlinux logs]# vim /usr/local/apache2/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"# ???// 按文件类型来设置自定义过期时间# ???// acess表示从访问时间开始# ???// now表示按当前时间开始# ???// plus在前面的时间基础上加上# ???// 1 hours/days 表示文件的生命周期# ???// 例如 acess plus 1 days 表示该文件从访问的时间开始1天内有效,无需重新获取
ExpiresDefault "now plus 0 min" ???

//除上述外的文件指定默认的过期时间

85.Apache(httpd)配置--日志控制与静态元素过期时间配置

原文地址:http://blog.51cto.com/sdwaqw/2085280

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved