lamp-日志设置(访问日志切割、不记录静态文件日志、缓存文件过期时间)

访问日志不记录指定类型的文件

在网站大多数元素为静态文件,比如图片、css、js等,这些静态文件都可以不用记录,我们只需要记录哪个ip访问了那个网页就可以;

编辑配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在 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" common 增加env=!img

代码预览

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.com
    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" common env=!img
</VirtualHost>

生效配置

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

测试

未设置配置前

访问111.com/baidu.png会被日志记录下来

curl -x127.0.0.1:80 111.com/baidu.png
tail /usr/local/apache2.4/logs/111.com-access_log
127.0.0.1 - - [05/Mar/2018:16:41:31 +0800] "GET HTTP://111.com/baidu.png HTTP/1.1" 200 7877

设置生效后

curl -x127.0.0.1:80 111.com/baidu.png
tail /usr/local/apache2.4/logs/111.com-access_log
127.0.0.1 - - [05/Mar/2018:16:41:31 +0800] "GET HTTP://111.com/baidu.png HTTP/1.1" 200 7877

除了生效前被记录下来的一条日志,生效后访问的却并未被记录下来;


访问日志切割

日志文件会一直记录着,总有一天会把磁盘空间给占满,一个文件上100G如何查看删除?那么我们可以设置日志按天切割成一个日志文件,一来方便查看日志,而来方便删除老旧日志;

配置虚拟主机文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

修改这一条配置CustomLog "logs/111.com-access_log" common env=!img
没有配置过不记录静态文件日志的小伙伴,请忽略掉后面的env=!img
修改成

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log" common env=!img

代码预览

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.com
    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" common env=!img
</VirtualHost>

生效配置

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

测试

配置前log文件

ls /usr/local/apache2.4/logs/
[[email protected] 111.com]# ls /usr/local/apache2.4/logs/
111.com-access_log  access_log  httpd.pid           szl.com-error_log
111.com-error_log   error_log   szl.com-access_log
[[email protected] 111.com]#

配置生效,访问后log文件

curl -x127.0.0.1:80 111.com/sdfhskjadfh.df

[[email protected] 111.com]# curl -x127.0.0.1:80 111.com/sdfhskjadfh.df
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /sdfhskjadfh.df was not found on this server.</p>
</body></html>

ls /usr/local/apache2.4/logs/目录下面多出了111.com-access_20180305.log按年月日的log文件

[[email protected] 111.com]# ls /usr/local/apache2.4/logs/
111.com-access_20180305.log  111.com-error_log  error_log  szl.com-access_log
111.com-access_log           access_log         httpd.pid  szl.com-error_log
[[email protected] 111.com]#

设置静态元素缓存过期时间

浏览器访问网站图片时,会把静态文件下载到电脑上,这样下次再访问时就不用去远程下载,达到节约服务器带宽的作用;
然而每个网站都是有内容更新的,我们一般设置一天更新一次,不设置更新那么本机访问的网页就是以前的旧网页,而不是更新后的网页;

编辑虚拟配置文件

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

增加配置


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

配置预览

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.111.com
    <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" common env=!img
</VirtualHost>

加载expires模块

由于增加了内容,调用了新模块expires,那么我们也要让apache加载对应模块才能生效

vim /usr/local/apache2.4/conf/httpd.conf
取消注释
LoadModule expires_module modules/mod_expires.so

查询expires模块是否正常加载(加载成功

/usr/local/apache2.4/bin/apachectl -M |grep expires
expires_module (shared)

生效配置

/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

测试

curl -x127.0.0.1:80 111.com/baidu.png -I


HTTP/1.1 200 OK
Date: Mon, 05 Mar 2018 09:42:30 GMT
Server: Apache/2.4.29 (Unix) PHP/5.6.30
Last-Modified: Mon, 05 Mar 2018 09:39:35 GMT
ETag: "8bfa-566a71a942179"
Accept-Ranges: bytes
Content-Length: 35834
Cache-Control: max-age=86400
Expires: Tue, 06 Mar 2018 09:42:30 GMT
Content-Type: image/png

其中Cache-Control: max-age=86400 表示缓存时间为86400秒
Expires代表缓存过期时间;

原文地址:http://blog.51cto.com/shuzonglu/2083176

时间: 2024-10-03 16:54:20

lamp-日志设置(访问日志切割、不记录静态文件日志、缓存文件过期时间)的相关文章

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 &

nginx访问日志配置+日志切割+不记录静态文件日志+设置静态文件过期时间

nginx访问日志 查看nginx.conf文件 vim /usr/local/nginx/conf/nginx.conf 中间有一行是定义log的格式 log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]' ' $host "$request_uri" $status' ' "$http_referer" "$http_user_agent"';

Nginx设置Js、Css等静态文件的缓存过期时间

location ~.*\.(js|css|html|png|jpg)$ { expires 3d; } expires    3d; //表示缓存3天 expires    3h; //表示缓存3小时 expires    max; //表示缓存10年 expires    -1; //表示永远过期. 如果设置为-1在js.css等静态文件在没有修改的情况下返回的是http 304,如果修改返回http 200 http 304:自从上次请求后,请求的网页未修改过.服务器返回此响应时,不会返回

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

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

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

访问日志不记录静态文件 当访问很多图片,文档等静态资源的时候,会加大你日志的容量,日志容量占用你磁盘空间后,会出现服务器宕机等很严重的问题,这时需要将日志进行配置优化.当访问网页时不记录这些图片.css.js等信息日志. 1.[[email protected] 111.com]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/11

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修改完后重新加载配置文件

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

一.访问日志不记录静态文件 访问日志:可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题,比如当有攻击时,是可以通过查看日志看到一些规律的. 静态元素:一个网站有很多元素,比如图片.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-

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 访问日志不记录静