Apache访问日志不记录静态文件
即在虚拟主机处配置访问特定资源不产生日志过滤,具体实例即网站不需要记录访问静态资源的日志,记录关键重要信息即可
编辑虚拟主机配置文件,添加如下配置。
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
curl测试未过滤时的效果,可以看到相关请求已记录
我们graceful虚拟主机配置文件,再次访问查看结果:
/usr/local/apache2.4/bin/apachectl graceful
通过对比时间和文件,发现重新请求的jpg资源已经不记录在日志里了
访问日志切割
作用:方便管理,查看。节省磁盘空间
修改文件参数如下:
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
我们graceful虚拟主机配置文件,查看apache日志目录:
/usr/local/apache2.4/bin/apachectl graceful
- 测试
curl -x127.0.0.1:80 111.com -I
- 此时日志已产生
- 建议定期删除旧的文件
Apache配置静态元素过期时间
浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了。定义静态元素过期时间的目的是定义清理掉缓存,节省空间。
- 编辑虚拟机配置文件,添加如下字段
// 编辑配置文件 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"
- 检查expaire模块是否加载
/usr/local/apache2.4/bin/apachectl -M |grep expires
- 编辑主配置文件开启此模块
// 编辑主配置文件vim /usr/local/apache2.4/conf/httpd.conf
- 开启此模块的配置
- graceful虚拟主机配置文件
/usr/local/apache2.4/bin/apachectl graceful
- 上传jpg图片文件到111.com目录下
[root@yolks2 conf]# ls /data/wwwroot/111.com/111.jpg /data/wwwroot/111.com/111.jpg
- 最后curl测试
curl -x127.0.0.1:80 111.com/qq.png -I
或者可以301访问
curl -x127.0.0.1:80 www.example.com/111.jpg -I
拓展
apache日志记录代理IP以及真实客户端IP
apache只记录指定URI的日志 apache日志记录客户端请求的域名 apache 日志切割问题