四十二、访问日志不记录静态文件、访问日志切割、静态元素过期时间

一、访问日志不记录静态文件

访问日志:可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题,比如当有攻击时,是可以通过查看日志看到一些规律的。

静态元素:一个网站有很多元素,比如图片、js、css等静态文件,这些就是静态元素。QQ浏览器,按F12可以查看它的静态元素,Network。

要配置httpd访问日志,首先需要虚拟主机配置文件中定义访问日志的格式,打开虚拟主机配置文件:

# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

</IFModule>

ErrorLog "logs/111.com-error_log"

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/111.com-access_log" combined env=!img

格式定义在访问日志customlog的上面。

img:标签,标记。img除外的都记录进来。这些以gif、jpg等结尾的做个标记叫img。这个标签名字随意,叫abc也行。

解析:SetEnvIf Request_URI ".*\.gif$" img

如果访问的Request_URI,除gif结尾的img的都记录进来。

解析:env=!img

上面的以img都不会记录到日志里,排除这些img。

# /usr/local/apache2.4/bin/apachectl graceful

# curl -x192.168.93.130:80 111.com/lsjdlf.jpg1 -I

# curl -x192.168.93.130:80 111.com/lsjdlf.jpg -I

# tail -3 /usr/local/apache2.4/logs/111.com-access_log

192.168.93.130 - - [14/Apr/2018:17:33:04 +0800] "HEAD HTTP://111.com/lsjdlf.jpg1 HTTP/1.1" 404 - "-" "curl/7.29.0"  只记录了jpg1。

平时我们看日志看的是请求过哪个页面,而不是这些图片,所有有必要做一个限制。

二、访问日志切割

每天有必要把日志做切割。

切割作用:防止磁盘写满,日后查看数据也方便查看。

# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img

rotatelogs:Apache自带的一个日志切割工具。

-l:让它以当前系统的时间为基准,如果不指定-l,就会以UTC格式,中国是CST,美国是UTC。

%Y%m%d:年月日。时间段是一天,换算成秒是86400秒。

# /usr/local/apache2.4/bin/apachectl -t

# /usr/local/apache2.4/bin/apachectl graceful

此时再访问这个虚拟主机就会生成对应日期的访问日志。

# ls

111.com-access_20180414.log  111.com-error_log   abc.com-error_log  error_log

111.com-access_log           abc.com-access_log  access_log         httpd.pid

三、配置静态元素过期时间

304状态码:代表你所下载的东西已经缓存到本地了,不用再到服务器去下载,可以节省带宽,但是没有规定什么时候把缓存清理掉。

# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<IfModUle mod_expires.c>  //模块名:expires

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>

定义它们的过期时间。

# vim /usr/local/apache2.4/conf/httpd.conf

LoadModule expires_module modules/mod_expires.so打开这个模块

# /usr/local/apache2.4/bin/apachectl graceful

Ctrl+F5:强制刷新,把本地的缓存清空。

# curl -x 127.0.0.1:80 111.com/lb.jpg -I

HTTP/1.1 200 OK

Date: Sat, 14 Apr 2018 15:42:58 GMT  当前时间

Server: Apache/2.4.33 (Unix) PHP/7.1.6

Last-Modified: Tue, 20 Feb 2018 04:04:27 GMT

ETag: "5607b-5659ce81be8c0"

Accept-Ranges: bytes

Content-Length: 352379

Cache-Control: max-age=86400

Expires: Sun, 15 Apr 2018 15:42:58 GMT 过期时间和当前时间差24小时

Content-Type: image/jpe

如果不设置加载这个模块就不会有过期时间这一行,一般都会设置这个。

扩展

apache日志记录代理IP以及真实客户端IP http://ask.apelearn.com/question/960

apache只记录指定URI的日志 http://ask.apelearn.com/question/981

apache日志记录客户端请求的域名 http://ask.apelearn.com/question/1037

apache 日志切割问题 http://ask.apelearn.com/question/566

原文地址:http://blog.51cto.com/13576245/2103790

时间: 2024-08-08 13:03:37

四十二、访问日志不记录静态文件、访问日志切割、静态元素过期时间的相关文章

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

访问日志不记录静态文件 1.过滤静态文件:修改虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule&

nginx日志不记录静态文件访问和缓存

nginx访问日志nginx和apache的访问日志一样可以记录的指定信息,如记录服务器时间,访问的客户端ip.访问的url和访问状态码等信息,这些信息会规律的记录到访问日志中主配置文件中定义的日志格式,记录的格式参数解释如下 $remote_addr ? ? ? ? ? ? ? ? ? 客户端访问IP(公网IP) $http_x_forwarded_for ? ? ? ? ? 记录代理服务器的IP $time_local ? ? ? ? ? ? ? ? ? ? 日志中服务器本地时间 $host

LAMP架构(apache访问日志不记录静态文件,静态元素过期时间,apache日志切割)

一.apache访问日志不访问静态文件 浏览器打开后按f12会会出现一个界面,点network,会出现很多请求,访问日志里会记载,有些静态的图片或者文件也会记载,太浪费磁盘空间和磁盘io.所以我们要让日志不记录静态文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI &

Linux centos7 VMware Apache访问日志不记录静态文件、访问日志切割、静态元素过期时间

一.Apache访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //改为如下 把虚拟主机配置文件改成如下: <VirtualHost *:80> DocumentRoot "/data/wwwroot/www.123.com" ServerName www.111.com ServerAlias 111.com SetEn

访问日志不记录静态文件;访问日志切割;静态图片等元素过期时间

扩展 apache日志记录代理IP以及真实客户端IP  http://www.lishiming.net/thread-960-1-1.html apache只记录指定URI的日志  http://www.lishiming.net/thread-981-1-1.html apache日志记录客户端请求的域名  http://www.lishiming.net/thread-1037-1-1.html apache 日志切割问题  http://www.lishiming.net/thread-

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

访问日志不记录静态文件 当访问很多图片,文档等静态资源的时候,会加大你日志的容量,日志容量占用你磁盘空间后,会出现服务器宕机等很严重的问题,这时需要将日志进行配置优化.当访问网页时不记录这些图片.css.js等信息日志. 1.[[email protected] 111.com]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/11

11.22 访问日志不记录静态文件;11.23 访问日志切割;11.24 静态元素过期时间

扩展: apache日志记录代理IP以及真实客户端IP : http://ask.apelearn.com/question/960 apache只记录指定URI的日志 : http://ask.apelearn.com/question/981 apache日志记录客户端请求的域名 : http://ask.apelearn.com/question/1037 apache 日志切割问题 : http://ask.apelearn.com/question/566 11.22 访问日志不记录静

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

11.22 访问日志不记录静态文件11.23 访问日志切割11.24 静态元素过期时间编辑虚拟配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf11.23 访问日志切割修改完配置文件后,需要重新访问下网址才能生动生成日志文件,以后每到00:00就会自动生成以系统日期为名字的新的日志文件编辑虚拟配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf修改完后重新加载配置文件

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

11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间 原文地址:http://blog.51cto.com/wbyyy/2083288