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

访问日志不记录静态文件

当访问很多图片,文档等静态资源的时候,会加大你日志的容量,日志容量占用你磁盘空间后,会出现服务器宕机等很严重的问题,这时需要将日志进行配置优化。当访问网页时不记录这些图片、css、js等信息日志。

1、[[email protected] 111.com]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

ServerAlias www.111.com www.example.com

php_admin_flag short_open_tag on

<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变量;(.gif/.jpg)结尾的;env=!img:这个表示被记录在日志中

    CustomLog "logs/111.com-access_log" combined env=!img

</VirtualHost>

2、[[email protected] 111.com]# /usr/local/apache2.4/bin/apachectl graceful

扩展:

我的需求是,把类似请求 www.aaa.com/aaa/... 这样的请求才记录日志。

在httpd.conf 或者 相关的虚拟主机配置文件中添加

SetEnvIf Request_URI "^/aaa/.*" aaa-request

CustomLog "|/usr/local/apache/bin/rotatelogs -l /usr/local/apache/logs/aaa-access_%Y%m%d.log 86400" combined env=aaa-request

这样就可以了。这个原理和不记录图片等静态访问的日志是一样的。

访问日志切割

1、[[email protected] 111.com]# vi /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 "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img

#-l:以标准时间计算

#使用rotatelogs切割,按86400秒计算(就是一天的时间切割)

#按每小时 3600秒

</VirtualHost>

2、[[email protected] 111.com]# /usr/local/apache2.4/bin/apachectl graceful

3、看下日志:

4、使用cronolog方式来切割

每一天建立一个新日志

CustomLog "|bin/cronolog logs/access_%Y%m%d.log" combined

每小时建立一个新日志

CustomLog "|bin/cronolog logs/access_%Y%m%d%h.log" combined

rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizeM ]

选项

-l

使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。所以一定要加上-l 否则出现的日志时间和实际时间是相差8小时的。

logfile

它加上基准名就是日志文件名。如果logfile中包含”%”,则它会被视为用于strftime()的格式字符串;否则它会被自动加上以秒为单位的”.nnnnnnnnnn”后缀。这两种格式都表示新的日志开始使用的时间。

rotationtime

日志文件滚动的以秒为单位的间隔时间。

offset

相对于UTC的时差的分钟数。如果省略,则假定为”0″并使用UTC时间。比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。

filesizeM

指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。

静态元素过期时间

当第一次访问网页时,浏览器自动将静态的元素缓存到你的电脑上(如静态图片资源),第二次访问则不用去服务器上获取,直接在本机电脑上获取缓存,好处:节省了服务器带宽,加速用户访问;缺点:当服务器静态资源更新了,你的本机电脑还在获取之前的缓存,而不是最新的资源,这时用户查看就出错,就需要设置下过期时间

1、访问http://111.com/3.png时,出现304表示直接在缓存上获取

2、[[email protected] 111.com]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>

DocumentRoot "/data/wwwroot/111.com"

ServerName 111.com

ServerAlias www.111.com www.example.com

php_admin_flag short_open_tag on

<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

#打开该功能的开关

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>

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.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img

</VirtualHost>

3、[[email protected] 111.com]# /usr/local/apache2.4/bin/apachectl graceful

4、配置Apache,加载expires模块

添加如下内容

[[email protected] 111.com]# vi /usr/local/apache2.4/conf/httpd.conf

LoadModule expires_module modules/mod_expires.so

[[email protected] 111.com]# /usr/local/apache2.4/bin/apachectl -M |grep expires

expires_module (shared)

检测:

[[email protected] 111.com]# curl -x127.0.0.1:80 111.com/3.png -I

HTTP/1.1 200 OK

Date: Thu, 09 Nov 2017 12:02:48 GMT

Server: Apache/2.4.29 (Unix) PHP/5.6.30

Last-Modified: Thu, 09 Nov 2017 12:02:48 GMT

ETag: W/"a102-55d97420ac440"

Accept-Ranges: bytes

Content-Length: 41218

Cache-Control: max-age=86400

Expires: Fri, 10 Nov 2017 12:02:48 GMT

Content-Type: image/png

时间: 2024-08-04 22:16:28

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

日志不记录静态文件,日志切割,静态元素过期时间

访问日志不记录静态文件 1.过滤静态文件:修改虚拟主机配置文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} !^111.com$ RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] </IfModule&

nginx日志不记录静态文件访问和缓存

nginx访问日志nginx和apache的访问日志一样可以记录的指定信息,如记录服务器时间,访问的客户端ip.访问的url和访问状态码等信息,这些信息会规律的记录到访问日志中主配置文件中定义的日志格式,记录的格式参数解释如下 $remote_addr ? ? ? ? ? ? ? ? ? 客户端访问IP(公网IP) $http_x_forwarded_for ? ? ? ? ? 记录代理服务器的IP $time_local ? ? ? ? ? ? ? ? ? ? 日志中服务器本地时间 $host

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

一.访问日志不记录静态文件 访问日志:可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题,比如当有攻击时,是可以通过查看日志看到一些规律的. 静态元素:一个网站有很多元素,比如图片.js.css等静态文件,这些就是静态元素.QQ浏览器,按F12可以查看它的静态元素,Network. 要配置httpd访问日志,首先需要虚拟主机配置文件中定义访问日志的格式,打开虚拟主机配置文件: # vim /usr/local/apache2.4/conf/extra/httpd-vhosts.co

访问日志不记录静态文件;访问日志切割;静态图片等元素过期时间

扩展 apache日志记录代理IP以及真实客户端IP  http://www.lishiming.net/thread-960-1-1.html apache只记录指定URI的日志  http://www.lishiming.net/thread-981-1-1.html apache日志记录客户端请求的域名  http://www.lishiming.net/thread-1037-1-1.html apache 日志切割问题  http://www.lishiming.net/thread-

LAMP架构(apache访问日志不记录静态文件,静态元素过期时间,apache日志切割)

一.apache访问日志不访问静态文件 浏览器打开后按f12会会出现一个界面,点network,会出现很多请求,访问日志里会记载,有些静态的图片或者文件也会记载,太浪费磁盘空间和磁盘io.所以我们要让日志不记录静态文件 [[email protected] ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf SetEnvIf Request_URI ".*\.gif$" img SetEnvIf Request_URI &

11.22 访问日志不记录静态文件;11.23 访问日志切割;11.24 静态元素过期时间

扩展: apache日志记录代理IP以及真实客户端IP : http://ask.apelearn.com/question/960 apache只记录指定URI的日志 : http://ask.apelearn.com/question/981 apache日志记录客户端请求的域名 : http://ask.apelearn.com/question/1037 apache 日志切割问题 : http://ask.apelearn.com/question/566 11.22 访问日志不记录静

11.22 访问日志不记录静态文件11.23 访问日志切割11.24 静态元素过期时间

11.22 访问日志不记录静态文件11.23 访问日志切割11.24 静态元素过期时间编辑虚拟配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf11.23 访问日志切割修改完配置文件后,需要重新访问下网址才能生动生成日志文件,以后每到00:00就会自动生成以系统日期为名字的新的日志文件编辑虚拟配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf修改完后重新加载配置文件

11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间

11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间 原文地址:http://blog.51cto.com/wbyyy/2083288

LAMP(5)域名跳转、Apache访问日志、访问日志不记录静态文件、访问日志切割

                            域名跳转    SEO(Search Engine Optimization)搜索引擎优化是一种利用搜索引擎的搜索规则来提高目前网站在有关搜索引擎内的自然排名的方式.SEO的目的理解是:为网站提供生态式的自我营销解决方案,让网站在行业内占据领先地位,从而获得品牌收益   一个网站是通过域名来判断的.   域名跳转:定义一个状态码,301永久重定向(通常都是同301,会降低原来域名权重,把权重定义到新的域名.)