11.22 访问日志不记录静态文件
11.23 访问日志切割
11.24 静态元素过期时间
11.22 访问日志不记录静态文件
一般在一个网页上都会好几十个图片,样式等等的静态文件。每一个用户访问网站,日志就会记录下所有的请求,其中就包括了静态文件的请求,而这些记录静态文件的日志对于我们来说没意义并且浪费磁盘空间,因此我们会设置访问日志不记录静态文件
配置文件
我们在test2的<VirtualHost>
里加上以下配置1
2
3
4
5
6
7
8
9SetEnvIf Request_URI ".*\.gif$" img
SetEnvIf Request_URI ".*\.jpg$" 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/test2.com-access_log" combined env=!img
加载文件
1 | [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t |
测试
先在test2的目录下放张test.jpg和test.JPG的图片
分别用浏览器和curl命令去访问再去看看日志
1
2
3[root@localhost test2.com]# curl -x192.168.80.101:80 test2.com/test.jpg -I
[root@localhost test2.com]# curl -x192.168.80.101:80 test2.com/test.JPG -I
[root@localhost test2.com]# tail -f /usr/local/apache2.4/logs/test2.com-access_log
发现日志并没有记录刚刚的.jpg和.JPG的请求
11.23 日志切割
因为每天都在写日志,日志文件会越来越大,总有一天会把磁盘空间占满。我们为了不让这事情发生就会使用日志切割工具来切割日志并用任务计划把时间久远的日志文件删除掉。
配置文件
我们在test2的CustomLog
里设定以下配置1
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/test2.com-access_%Y%m%d.log 86400"
|/usr/local/apache2.4/bin/rotatelog
使用apache的rotatelog工具进行日志切割 -l
指定使用系统时间切割CST 不指定就是用UTC国际时间 变量%Y%m%d
指定年月日 86400指时间段一天(86400秒)来切割
加载文件
1 | [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t |
测试
使用curl命令访问test2.com再看看有没有生成新的日志1
2
3
4
5
6
7
8
9[root@localhost ~]# curl -x 192.168.80.101:80 test2.com -I
HTTP/1.1 200 OK
Date: Tue, 29 May 2018 21:53:56 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
X-Powered-By: PHP/5.6.32
Content-Type: text/html; charset=UTF-8
[root@localhost ~]# cat /usr/local/apache2.4/logs/test2.com-access_20180530.log
192.168.80.1 - - [30/May/2018:05:53:32 +0800] "GET / HTTP/1.1" 200 5 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36"
192.168.80.101 - - [30/May/2018:05:53:56 +0800] "HEAD HTTP://test2.com/ HTTP/1.1" 200 - "-" "curl/7.29.0"
发现多了一个test2.com-access_20180530.log的文件 每日一个 等时间过久了可以勇士任务计划把几个月前的日志清除
11.24 静态元素过期时间
当使用浏览器来访问网站的静态文件时,系统都会自动把静态文件下载到本地的目录下做缓存的。而这些静态文件的的保质期都是由服务器来定义的,既可以帮服务器节省带宽,也可以加快用户的访问网站的时间。
配置文件
我们在test2的<VirtualHost>
里加上以下配置1
2
3
4
5
6
7
8
9
10
11<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeg "access plus 1 days"
ExpiresByType image/png "access plus 1 days"
ExpiresByType text/css "now plus 2 hours"
ExpiresByType application/x-javescript "now plus 2 hours"
ExpiresByType application/javescript "now plus 2 hours"
ExpiresByType application/x-shockwave-flash "now plus 2 hours"
ExpiresDefault "now plus 0 hours"
</IfModule>
加载模块
在配置文件httpd.conf里面把expires模块前的#去掉1
2
3
4[root@localhost ~]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so ##去掉前面的#
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl -M |grep expires
expires_module (shared)
加载文件
1 | [root@localhost ~]# /usr/local/apache2.4/bin/apachectl -t |
测试
使用浏览器访问
使用curl命令访问1
2
3
4
5
6
7
8
9
10
11[root@localhost ~]# curl -x 192.168.80.101:80 test2.com/test.jpg -I
HTTP/1.1 200 OK
Date: Tue, 29 May 2018 22:57:17 GMT
Server: Apache/2.4.33 (Unix) PHP/5.6.32
Last-Modified: Mon, 28 May 2018 23:15:15 GMT
ETag: "10883-56d4c4a57cccb"
Accept-Ranges: bytes
Content-Length: 67715
Cache-Control: max-age=86400
Expires: Wed, 30 May 2018 22:57:17 GMT
Content-Type: image/jpeg
304状态码
表示用户访问的文件没变化 Cache-Contro
指定静态文件的保质期 86400表示1天 Expires
表示过期日期