访问日志不记录静态文件
[root@HANLIN /]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com xy.com
#<Directory /data/wwwroot/111.com>
#<FilesMatch sss.php>
# AllowOverride AuthConfig
# AuthName "111.com user auth"
# AuthType Basic
# AuthUserFile /data/.htpasswd
# require valid-user
#</FilesMatch>
#</Directory>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>
ErrorLog "logs/111.com-error_log"
SetEnvIf Request_URI ".*\.gif$" img (img就相当于是给这个过滤条件打上一个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
</VirtualHost>
测试
不刷新配置文件测试
[root@HANLIN conf]# curl -x127.0.0.1:80 111.com/jpg
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /jpg was not found on this server.</p>
</body></html>
[root@HANLIN conf]# cat /usr/local/apache2.4/logs/111.com-
111.com-access_log 111.com-error_log
[root@HANLIN conf]# cat /usr/local/apache2.4/logs/111.com-access_log
192.168.0.102 - zhangsan [08/Nov/2018:01:44:13 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:44:14 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:44:17 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:52:36 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
192.168.0.102 - zhangsan [08/Nov/2018:01:52:37 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
192.168.0.102 - zhangsan [08/Nov/2018:01:52:43 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:13:59:00 +0800] "GET HTTP://111.com/jpg HTTP/1.1" 404 201 "-" "curl/7.29.0"
刷新配置文件测试
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl graceful
[root@HANLIN conf]# curl -x127.0.0.1:80 111.com/111.bmp
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /111.bmp was not found on this server.</p>
</body></html>
[root@HANLIN conf]# cat /usr/local/apache2.4/logs/111.com-access_log
192.168.0.102 - zhangsan [08/Nov/2018:01:44:13 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:44:14 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:44:17 +0800] "GET / HTTP/1.1" 200 7
192.168.0.102 - zhangsan [08/Nov/2018:01:52:36 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
192.168.0.102 - zhangsan [08/Nov/2018:01:52:37 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
192.168.0.102 - zhangsan [08/Nov/2018:01:52:43 +0800] "GET / HTTP/1.1" 200 7 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36"
127.0.0.1 - - [08/Nov/2018:13:59:00 +0800] "GET HTTP://111.com/jpg HTTP/1.1" 404 201 "-" "curl/7.29.0"
127.0.0.1 - - [08/Nov/2018:14:06:06 +0800] "GET HTTP://111.com/jpg HTTP/1.1" 404 201 "-" "curl/7.29.0" (没有出现跟bmp相关 的日志)
访问日志切割
[root@HANLIN /]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
CustomLog "|/usr/local/apache2.4/bin/rotatelog -l logs/111.com-access_log_%Y%m%d.log 86400" combined env=!img (-l 表示用的是中国cst时区时间,以当前系统时间为基准,86400换算成秒,是每隔一天新建一个以当天日期为名字的日志文件,可以自己再做任务计划,每隔三个月删除一次日志)
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl graceful (出错就是因为上面命令rotate前面少了个bin)
httpd not running, trying to start
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl start
httpd (pid 80028) already running
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl graceful
[root@HANLIN /]# netstat -lntp |grep httpd
tcp6 0 0 :::80 :::* LISTEN 80028/httpd
[root@HANLIN /]# cat /usr/local/apache2.4/logs/
111.com-access_log abc.com-access_log access_log httpd.pid
111.com-error_log abc.com-error_log error_log
[root@HANLIN /]# cat /usr/local/apache2.4/logs/
111.com-access_log abc.com-access_log error_log
111.com-access_log_20181108.log abc.com-error_log httpd.pid (出现我们需要的切割日志)
111.com-error_log access_log
配置静态元素过期时间
[root@HANLIN conf]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com xy.com
#<Directory /data/wwwroot/111.com>
#<FilesMatch sss.php>
# AllowOverride AuthConfig
# AuthName "111.com user auth"
# AuthType Basic
# AuthUserFile /data/.htpasswd
# require valid-user
#</FilesMatch>
#</Directory>
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L]
</IfModule>
<IfModule mod_expires.c>
ExpiresActive on 打开该功能的开关
ExpiresByTape image/gif "access plus 1 days"
ExpiresByTape image/jpeg "access plus 24 hours"
ExpiresByTape image/png "access plus 24 hours"
ExpiresByTape text/css "now plus 2 hours"
ExpiresByTape application/x-javascript "now plus 2 hours"
ExpiresByTape application/javascript "now plus 2 hours"
ExpiresByTape application/x-shickwave-flash "now plus 2 hours"
Expiresdefault "now plus 0 min"
</Ifmoudule>
ErrorLog "logs/111.com-error_log"
开始测试
root@HANLIN conf]# vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule expires_module modules/mod_expires.so (前面#号去掉)
LoadModule headers_module modules/mod_headers.so
#LoadModule unique_id_module modules/mod_unique_id.so
[root@HANLIN 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expires
expires_module (shared)
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@HANLIN /]# /usr/local/apache2.4/bin/apachectl graceful
[root@HANLIN 111.com]# curl -x127.0.0.1:80 111.com/wxz.jpg -I (-I 表示忽略其他,只显示状态码)
HTTP/1.1 200 OK (200表示正常,如果网页再刷新一遍会产生304状态码,表示正在访问已经有缓存的网页内容)
Date: Thu, 08 Nov 2018 16:25:45 GMT
Server: Apache/2.4.35 (Unix) PHP/5.6.32
Last-Modified: Thu, 08 Nov 2018 16:21:27 GMT
ETag: "5dacf-57a29a0686fc0"
Accept-Ranges: bytes
Content-Length: 383695
Cache-Control: max-age=86400 (图片老化时间一天,一天过后网站自动清除该图片缓存)
Expires: Fri, 09 Nov 2018 16:25:45 GMT
Content-Type: image/jpeg