zoukankan      html  css  js  c++  java
  • 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间

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

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

    静态元素:一个网站有很多元素,比如图片、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

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

  • 相关阅读:
    Ecshop去掉模版中随机出现Ecshop版权的方法
    ecshop邮件订阅按“订阅”没反应
    ecshop开发帮助
    ecshop循环计数
    ECSHOP购物车页面显示商品简单描述
    ecshop 函数列表大全
    ecshop 商品分类页 取得当前分类下的子分类方法
    ecshop调用指定分类和个数的文章列表
    thymeleaf中的th:assert用法
    thymeleaf中的模板布局
  • 原文地址:https://www.cnblogs.com/pta188/p/9110675.html
Copyright © 2011-2022 走看看