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

访问日志不记录静态文件

网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 ####修改虚拟主机配置文件

[root@jiangshan~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.example.com
    <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  
    #以上为定义变量:将所有关于图片的请求定义为变量img
    CustomLog "logs/111.com-access_log" combined env=!img
    #“env=!img”表示非img变量。本行命令的含义是:不记录关于变量img的请求日志。
</VirtualHost>

####重新加载配置文件

[root@jiangshan 123.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@jiangshan 123.com]# /usr/local/apache2.4/bin/apachectl 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

访问日志切割

日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件

修改虚拟主机配置文件
 <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>
重新加载配置文件
[root@jiangshan 123.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@jiangshan 123.com]# /usr/local/apache2.4/bin/apachectl graceful

####查看日志

 ls /usr/local/apache2.4/logs 

####日志切割工具

日志切割工具cronolog和rotatelogs详解

静态元素过期时间

浏览器访问网站的图片时会把静态的文件缓存在本地电脑里,这样下次再访问时就不用去远程下载了 增加配置 ####修改配置文件

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

####检测语法错误

[root@adailinux 111.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

####是否开启expire模块

[root@adailinux 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expires
##去掉#开启加载该模块的命令行
[root@adailinux 111.com]# vim /usr/local/apache2.4/conf/httpd.conf
LoadModule expires_module modules/mod_expires.so
curl测试(Cache-Control)
Cache-control: max-age=5 
##表示当访问此网页后的5秒内再次访问不会去服务器 
Cache-Control: no-cache:
##这个很容易让人产生误解,使人误以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。 
Cache-Control: no-store:
##这个才是响应不被缓存的意思
Pragma: no-cache:
##跟Cache-Control: no-cache相同,Pragma: no-cache兼容http 1.0 ,Cache-Control: no-cache是http 1.1提供的。 

Pragma: no-cache可以应用到http 1.0 和http 1.1,而Cache-Control: no-cache只能应用于http 1.1.

转载于:https://my.oschina.net/jiangshanlinux/blog/1499248

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值