新网Logo
首页>虚机资讯>

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

登录 注册

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

  • 来源:
  • 更新日期:2018-05-10

摘要:访问日志不记录静态文件 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 把虚拟主机配置文件改成如下: DocumentRoot \"/data/wwwroot/www.123.com\" ServerName www.123.com ServerAlias 123.com SetEnvIf Request_URI \"

访问日志不记录静态文件 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 把虚拟主机配置文件改成如下:

002UASMrzy7605pjKJv15&690.jpg

<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>

重新加载配置文件 -t, graceful 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

编辑虚拟主机配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

将所有的符合访问图片的请求,都不会记录在日志里

在保存配置文件之后,加载配置文件

做个访问测试,以jpg1结尾会记录在日志里的,而jpg,png等是不记录在日志里

模拟上传一张图片并访问

切换到/data/wwwroot/111.com目录下,上传一张图片

请求访问图片,在浏览器里可以访问图片

而在日志里没有发现访问百度图片的记录

 

如果修改虚拟主机配置文件,删掉env=!img,刷新浏览器或者curl访问图片,日志又会记录

 

 

 

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

<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 "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img

</VirtualHost>

重新加载配置文件 -t, graceful ls /usr/local/apache2.4/logs

打开配置文件,更改CustomLog,# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

 

rotatelogs是Apache切割日志的工具;-l表示使用系统时间(CST),如果不加-l选项,将以默认的时间(UTC)为准;日志文件名“%Y%m%d”表示年月日;时间间隔设定为一天(86400s)

检查配置文件语法,并重新加载配置文件

 

然后再curl访问,就会生成一个以日期为后缀的新的日志文件

 

在以后的凌晨0点的时候,就会生成一个新的日志;另外写个任务计划,超过一个月的日志要删除,防止磁盘写满

静态元素过期时间 浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了

增加配置

<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>

需要expires_module curl测试,看cache-control: max-age

静态文件:如图片文件、css、js文件等

打开配置文件# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,增加配置

 

检查是否存在语法错误,查看expire模块是否打开,会发现expire模块没有打开

 

 

编辑主配置文件,搜索/expire,打开expire模块(去掉注释符)

 

 

加载配置文件,查看expire模块

 

按ctrl+F5可以强制刷新,把浏览器本地的缓存清空

用curl访问图片,mv baidu.png qq.png

 

注:公司的网站一般都会设置过期时间,比较好用

扩展

apache日志记录代理IP以及真实客户端IP

apache只记录指定URI的日志

apache日志记录客户端请求的域名

apache 日志切割问题