. 网站大多元素为静态文件, 如图片 CSSjs 等, 这些元素可以不用记录
原因: 如果不去限制, 那么会消耗大量的磁盘空间和 IO, 而且这些文件无意义
编辑 http-vhost 配置文件:
[root@localhost ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在 CustomLog 之上加入内容, 并且在 CustomLog 行加入! img, 表示符合以上条件的都不加入到日志中
(img 可以用其他代替, 只要和上方定义的名称一致即可, 如下图)
因为没有重置配置, 所以配置暂未生效, 此时访问以. jpg 结尾的请求
- [root@localhost ~]# curl -x127.0.0.1:80 111.com/dsafas.jpg -I
- HTTP/1.1 404 Not Found
- Date: Sat, 03 Mar 2018 11:26:57 GMT
- Server: Apache/2.4.29 (Unix) PHP/7.1.6
- Content-Type: text/html; charset=iso-8859-1
查看日志文件, 发现该访问已经被记录
[root@localhost ~]# tail /usr/local/apache2.4/logs/111.com-access_log
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
- Syntax OK
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
重置配置之后, 再次访问一个. jpg 结尾的请求
- [root@localhost ~]# curl -x127.0.0.1:80 111.com/hhhhhh.jpg -I
- HTTP/1.1 404 Not Found
- Date: Sat, 03 Mar 2018 11:29:10 GMT
- Server: Apache/2.4.29 (Unix) PHP/7.1.6
- Content-Type: text/html; charset=iso-8859-1
查看日志文件, 因为配置文件生效之后, 就阻挡了以. jpg 结尾的请求被记录到日志中去, 因此, 看不到该条访问记录
[root@localhost ~]# tail /usr/local/apache2.4/logs/111.com-access_log
我们再去进行更多访问的请求
查看日志发现, 仅仅记录了以. xxx 结尾的访问, 而之前. gif 和之后. css 则没有记录, 正式因为配置文件中将这类访问给定义为不需要记录的
访问 / data/wwwroot/111.com / 中的一张图片, 不会被记录到日志中
- [root@localhost ~]# curl -x127.0.0.1:80 111.com/gakki.jpg -I
- HTTP/1.1 200 OK
- Date: Sat, 03 Mar 2018 11:51:24 GMT
- Server: Apache/2.4.29 (Unix) PHP/7.1.6
- Last-Modified: Sat, 03 Mar 2018 11:51:11 GMT
- ETag: "d275-56680b58abf85"
- Accept-Ranges: bytes
- Content-Length: 53877
- Content-Type: image/jpeg
如果把配置文件中 env=!img 去掉, 那么日志将会重新将原先不记录的访问进行记录
保存后, 浏览器访问 111.com/gakki.jpg, 那么该记录会被记录进日志中
11.23 访问日志切割
. 日志一直记录总有一天会把整个磁盘占满, 所以有必要让它自动切割, 并删除老的日志文件
作用: 防止磁盘写满
需要用到 apache 自带的 rotatelogs 切割工具
把虚拟主机配置文件改成如下:
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
|/usr/local/apache2.4/bin/rotatelogs rotatelogs 工具
-l 以当前系统时间为基准, 不然就以 UTC 为基准, 中国是 CST
logs logs 目录下
111.com-access_%Y%m%d.log 文件名 年 月 日
86400 规定切割时间, 单位是秒, 86400 是一天
访问 111.com/123.php, 会生成以日期为名称的日志文件
生成的新日志文件内有最近的访问记录
11.24 静态元素过期时间
. 浏览器访问网站的图片时会把静态的文件缓存在本地电脑里, 这样下次再访问时就不用去远程下载了
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t
- Syntax OK
检查 expaire 模块是否打开, 没有打开的话, 需要去主配置文件中打开
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expire
- [root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful
- [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M | grep expire
- expires_module (shared)
- (expire 模块打开并配置成功)
- [root@localhost ~]# curl -x127.0.0.1:80 111.com/aragaki.jpg
- (信息表明缓存最大保存时间以及失效 GMT 格林尼治时间, 和北京时间 8 小时时差)
- (只有在打开 expire 模块时才能看到此信息)
如有错误, 欢迎指正, 互相学习, 共同进步!
2018-3-5 10 周 4 次课 访问日志不记录静态文件访问日志切割静态元素过期时间
来源: http://www.bubuko.com/infodetail-2515994.html