一、配置访问日志不记录静态元素

1、作用:静态元素日志记录意义不大,而且这些静态元素日志又非常大 ,占用磁盘空间和读写速度,所以限制记录这些静态元素记录。

2、编辑虚拟主机配置文件内容:

<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<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
SetEnvIf Request_URI ".*\.gpg$" 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>

img是定义的一个环境变量,把gif、png、bmp等格式文件全部归类到img里。 env!=img 意思是把img以外的文件记录到日志里

3、测试;
由图一和图二可知我们分别访问了gif1和gif格式的文件,日志只记录了gif1格式的日志,没有记录gif格式的日志。说明配置成功。

 

二、日志切割

1、作用:防止单个日志过大,方便归档查看,有利于定期清理磁盘空间。

2、编辑配置文件内容:

VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<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
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/log/apache2/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
</VirtualHost>

rotatelogs 为httpd自带的切割日志工具, -l 指以当前系统时间为基准,86400 单位是秒,相当于一天。

3、测试,我们发现生成有时间标志的log,并且没有静态元素访问日志。

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

1、浏览器访问网站的图片时会缓存到本地电脑,下次访问时会直接从访问电脑缓存,提高访问效率,降低服务器的资源消耗。因此也需要设置缓存过期时间。

2、编辑虚拟主机内容:

<VirtualHost *:80>
DocumentRoot "/data/testphp/111.com
ServerName 111.com
ServerAlias www.example.com 2111.com.cn
<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
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/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType image/gif "access plus 1 days"
ExpiresByType image/jpeng "access plus 24 hours"
ExpiresByType image/png "access plus 10 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>
</VirtualHost>

3、编辑配置主文件  /usr/local/apache2/conf/httpd.conf,加载expires模块。

LoadModule expires_module modules/mod_expires.so  去掉该行前的# 

4、测试:

可以看到缓存开始时间,缓存总时长及清除时间。

 

当注释掉expires模块,则不会看到Cache-Control等信息。

5、浏览器访问:同样可以看到状态码和缓存保存时长等。

posted on 2018-03-05 22:50  天梭  阅读(170)  评论(0编辑  收藏  举报