11.22 访问日志不记录静态文件

  • 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录
    小技巧:
    打开浏览器,按键盘上的F12键,开发人员工具,选择Network选项(一般默认),刷新网页或打开新的页面,如下图所示:

    在Name这列,有很多个元素,每个元素其实就代表着一个访问请求,有请求,就有日志。一网站有很多元素组成,每一个元素记录一条,那一天将近几个G的日志文件。
  • 把虚拟主机配置文件改成如下:
#添加的参数SetEnvIf Request_URI ".*\.gif$" imgSetEnvIf Request_URI ".*\.jpg$" imgSetEnvIf Request_URI ".*\.png$" imgSetEnvIf Request_URI ".*\.bmp$" imgSetEnvIf Request_URI ".*\.swf$" imgSetEnvIf Request_URI ".*\.js$" imgSetEnvIf Request_URI ".*\.css$" imgCustomLog "logs/123.com-access_log" combined env=!img
#只要符合的请求,都不会记录到日志里

截图如下:

  • 重新加载配置文件-t,graceful
[root@taoyuan ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK[root@taoyuan ~]# /usr/local/apache2.4/bin/apachectl graceful
  • 创建目录,并在这目录下上传一个图片
#可以上传一张图片,放在站点的目录下,也可以在站点根目录下创建images目录用于存放图片
[root@taoyuan 123.com]# ls
index.php  qq.png
  • curl -x127.0.0.1:80 -I 123.com/qq.png
[root@taoyuan ~]# curl -x127.0.0.1:80 123.com/adaffhgf -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:12:39 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#查看日志
[root@taoyuan ~]# tail /usr/local/apache2.4/logs/123.com-access_log 127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"#执行*.jpg
[root@taoyuan ~]# curl -x127.0.0.1:80 123.com/adaffhgf.jpg -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:14:54 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#日志里没有记录
[root@taoyuan ~]# tail /usr/local/apache2.4/logs/123.com-access_log
127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"#测试图片
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 14:23:37 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Content-Type: image/png
  • tail /usr/local/apache2.4/logs/123.com-access_log
#查看日志
[root@taoyuan 123.com]# tail /usr/local/apache2.4/logs/123.com-access_log #没有日志记录,已经排除了
127.0.0.1 - - [21/Dec/2017:22:12:39 +0800] "HEAD HTTP://123.com/adaffhgf HTTP/1.1" 404 - "-" "curl/7.29.0"

11.23 访问日志切割

  • 日志一直记录总有一天会把整个磁盘占满,所有有必要让它自动切割,并删除老的日志文件
  • 把虚拟主机配置文件改成如下:
<VirtualHost *:80>DocumentRoot "/data/wwwroot/123.com"ServerName 123.comServerAlias www.123.cn www.123.comErrorLog "logs/123.com-error_log"SetEnvIf Request_URI ".*\.gif$" imgSetEnvIf Request_URI ".*\.jpg$" imgSetEnvIf Request_URI ".*\.png$" imgSetEnvIf Request_URI ".*\.bmp$" imgSetEnvIf Request_URI ".*\.swf$" imgSetEnvIf Request_URI ".*\.js$" imgSetEnvIf Request_URI ".*\.css$" imgCustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/123.com-access_%Y%m%d.log 86400" combined env=!img#CustomLog "logs/123.com-access_log" combined env=!img
</VirtualHost>#需要指定一个rotatelogs工具,是Apache自带的一个日志切割工具。-l 是以时间切割为单位。
#86400 表示是多久切割的时间段
  • 重新加载配置文件 -t,graceful
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl graceful
  • ls /usr/local/apache2.4/logs
#curl测试
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/12141 -I
HTTP/1.1 404 Not Found
Date: Thu, 21 Dec 2017 14:35:34 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Content-Type: text/html; charset=iso-8859-1#查看文件
[root@taoyuan 123.com]# ls /usr/local/apache2.4/logs/
111.com-access_log  123.com-access_20171221.log  123.com-error_log  error_log
111.com-error_log   123.com-access_log           access_log         httpd.pid
生成了一个123.com-access_20171221.log文件

注:在实际过程中,需要建立一个任务计划,把一段时间的文件进行拷贝或删除,以保证磁盘容量永远是足够的。

12.11.24 静态元素过期时间

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

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

截图如下:

备注:
这部分配置用到了mod_expires模块,相关配置内容并不难理解,通过字面也可以大致猜到其含义。这里gif、jpeg、png格式的文件过期时长为1天,css、js、flash格式的文件过期时长为2小时,其他文件过期时长为0。

  • 需要expires_module
#查看是否加载了expires_module 模块
[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -M|grep expire
#没有加载模块#编辑配置文件
[root@taoyuan 123.com]# vim /usr/local/apache2.4/conf/httpd.confLoadModule expires_module modules/mod_expires.so  #去掉注释[root@taoyuan 123.com]# /usr/local/apache2.4/bin/apachectl -M|grep expireexpires_module (shared)
  • curl 测试,看cache-control:max-age
没有生效前的
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 14:59:48 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Content-Type: image/png#生效之后的
[root@taoyuan 123.com]# curl -x127.0.0.1:80 123.com/qq.png -I
HTTP/1.1 200 OK
Date: Thu, 21 Dec 2017 15:03:51 GMT
Server: Apache/2.4.28 (Unix) PHP/5.6.30
Last-Modified: Thu, 21 Dec 2017 13:47:55 GMT
ETag: "193e-560d9f26db8c0"
Accept-Ranges: bytes
Content-Length: 6462
Cache-Control: max-age=86400
Expires: Fri, 22 Dec 2017 15:03:51 GMT
Content-Type: image/png#多了cache-control参数等

浏览器结果如下:

按ctrl+f5 强制刷新

转载于:https://blog.51cto.com/3622288/2053091

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

  1. 4.36域名重定向4.37用户认证4.38Nginx访问日志4.39日志不记录静态文件4.40日志切割...

    2019独角兽企业重金招聘Python工程师标准>>> 域名重定向 用户认证 Nginx访问日志 日志不记录静态文件 日志切割 域名重定向 配置第二个域名: vi /etc/ngin ...

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

    一.Apache访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 vim /usr/local/apache2.4/conf/extra/httpd-vho ...

  3. 4.16访问日志不记录静态文件,访问日志切割以及静态元素过期时间

    访问日志不记录静态文件 一个网站会有很多元素,尤其是图片.js.css等静态文件非常多,每个用户请求一个页面都会访问诸多的图片,这些元素都会被记录在日志中,如果一个网站访问量很大,那么这些日志会增长的 ...

  4. 1.8.5 访问日志不记录静态文件

    2019独角兽企业重金招聘Python工程师标准>>> 1.8.5 访问日志不记录静态文件 网站大多元素为静态文件,如图片.css.js等,这些元素可以不用记录 把虚拟主机配置文件改 ...

  5. 设置日志不记录指定类型的文件,日志文件的切割,配置静态元素过期时间

    访问日志不记录指定类型的文件 修改虚拟主机配置文件 先不重新加载配置,测试访问jpg文件,是否记录日志 测试结果是还是记录了jpg文件的日志 -t graceful重新加载一次,就会发现不会记录jpg ...

  6. nginx配置不记录指定文件类型日志

    1.编辑主配置文件 vim /usr/local/nginx/conf/nginx.conf 2.将log_format combined_realip改为log_format river 备注:日志 ...

  7. dajngo3设置静态文件访问

    新建一个upload文件,并且在该文件夹内存放一张图片 setting.py文件里面需要设置 STATIC_URL = '/static/' #添加用户可以上传图片的文件夹 upload文件夹,这个是 ...

  8. log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件

    springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...

  9. webbrowser 访问iframe拒绝访问_电脑无法删除文件访问被拒绝【解决方案】

    在使用时遇到了无法删除访问被拒绝 的问题,无法删除访问被拒绝 虽然不是大问题,但无法删除访问被拒绝 的问题会导致无法正常工作,那该怎么处理呢,下文给大家分享一下无法删除访问被拒绝 的具体解决方法: 无 ...

最新文章

  1. 转 一个SMD 0805的LED的电流,电压,亮度关系表
  2. Javaweb-AJAX快速入门及案例实战
  3. ref与out一看就懂
  4. iSensor APP 之 摄像头调试 OV3640 OV2640 MT9d112
  5. docker切换到linux容器模式,linux – 将虚拟主机转换到Docker容器
  6. CSDN排名更新又出问题了?
  7. Cocos2dx3.0过渡篇 globalZOrder()与localZOrder()
  8. Mendeley Destop引用格式自定义调整
  9. vsCode 配置 html 文件警告
  10. ArcGIS 实验理论基础二十二 空间插值
  11. 2010最有趣牛人语录100句
  12. 微信小程序太阳落日效果
  13. 攻防世界高手进阶区——dice_game
  14. Razor 视图引擎的一些属性和方法
  15. 【渗透测试】你应该了解的大部分工具![本文仅供了解]
  16. The type java.lang.String cannot be resolved. It is indirectly referenced from required .class files
  17. 通达OA协同办公软件怎么样?
  18. HTML5 Canvas 北京的美丽园林和雾霾天气
  19. 阴沟里翻船之KeSetEvent
  20. 【docker】新镜像推送到私服库配置

热门文章

  1. 计算两个矩阵相乘(Java)
  2. KVM虚拟机获取所有IP(shell)
  3. C/C++:Windows编程—MFC基于CWnd自绘CListCtrl控件且带滚动条
  4. 设计模式:原型模式(C++)【克隆羊多莉】
  5. 2018.11.08 NOIP模拟 景点(倍增+矩阵快速幂优化dp)
  6. char,short ,int ,long,long long,unsigned long long数据范围
  7. 解决在linux环境下面不显示验证码的问题
  8. 安卓与HTML简单的交互使用
  9. JavaWeb -- Struts1 多文件上传与下载 DownloadAction, DispatchAction
  10. 怎么用命令开远程主机的telnet服务 2