扩展
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/566javascript
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=!imgphp
浏览器能够查看到页面元素,按 F12 查看页面元素内容,它默认定位在Network。若是不是在Network,就去选择下Network,而后刷新下网页,会看到如图css
会看到右侧出现不少的元素,每一行都表示一个元素,这些请求,这些访问都会记录到访问日志里面去的,但实际上没有必须记录一些图片、css、js等元素,而这些请求都会记录到日志文件里,就会致使天天的日志访问量很大,对以后的运维很不方便,因此就有了需求,对于静态的元素的uri 不进行记录html
排除图片、css、js等,拷贝配置文件到服务器里面java
<VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com 2111.com.cn 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 </VirtualHost>
[root@yong-02 images]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf #<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerName abc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com 2111.com.cn #<Directory /data/wwwroot/111.com> #<FilesMatch 123.php> # AllowOverride AuthConfig # AuthName "111.com user auth" # AuthType Basic # AuthUserFile /data/.htpasswd # require valid-user #</FilesMatch> #</Directory> # <IfModule mod_rewrite.c> #须要mod_rewrite模块支持 # RewriteEngine on #打开rewrite功能 # RewriteCond %{HTTP_HOST} !^111.com$ #定义rewrite的条件,主机名(域名)不是111.com知足条件 # RewriteRule ^/(.*)$ http://111.com/$1 [R=301,L] #定义rewrite规则,当知足上面的条件时,这条规则才会执行 # </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 </VirtualHost> 并保存退出
[root@yong-02 images]# curl -x127.0.0.1:80 111.com/fsadfq.jpg -I HTTP/1.1 404 Not Found Date: Wed, 30 May 2018 13:59:42 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
[root@yong-02 images]# tail /usr/local/apache2/logs/111.com-access_log 127.0.0.1 - - [30/May/2018:22:00:53 +0800] "HEAD HTTP://111.com/1.php HTTP/1.1" 200 - "-" "curl/7.29.0" 127.0.0.1 - - [30/May/2018:22:01:14 +0800] "HEAD HTTP://111.com/images/baidu.com HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@yong-02 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 ~]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 images]# tail /usr/local/apache2/logs/111.com-access_log 127.0.0.1 - - [30/May/2018:22:00:53 +0800] "HEAD HTTP://111.com/1.php HTTP/1.1" 200 - "-" "curl/7.29.0" 127.0.0.1 - - [30/May/2018:22:01:14 +0800] "HEAD HTTP://111.com/images/baidu.com HTTP/1.1" 404 - "-" "curl/7.29.0"
[root@yong-02 ~]# cd /data/wwwroot/111.com/images/ [root@yong-02 images]# ls baidu.png
用curl命令查看图片,会发现图片是能访问的apache
[root@yong-02 images]# curl -x127.0.0.1:80 111.com/images/baidu.png -I HTTP/1.1 200 OK Date: Wed, 30 May 2018 14:05:19 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Last-Modified: Wed, 30 May 2018 13:46:34 GMT ETag: "a46d-56d6c9435c280" Accept-Ranges: bytes Content-Length: 42093 Content-Type: image/png
[root@yong-02 images]# tail -5 /usr/local/apache2/logs/111.com-access_log 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:42 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://111.com/images/baidu.png" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400"
[root@yong-02 images]# curl -x127.0.0.1:80 111.com/images/baidu.png -I HTTP/1.1 200 OK Date: Wed, 30 May 2018 14:09:41 GMT Server: Apache/2.4.33 (Unix) PHP/7.1.6 Last-Modified: Wed, 30 May 2018 13:46:34 GMT ETag: "a46d-56d6c9435c280" Accept-Ranges: bytes Content-Length: 42093 Content-Type: image/png
[root@yong-02 images]# tail -5 /usr/local/apache2/logs/111.com-access_log 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:41 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 192.168.180.1 - - [30/May/2018:22:06:42 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://111.com/images/baidu.png" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4482.400 QQBrowser/9.7.13001.400" 127.0.0.1 - - [30/May/2018:22:12:11 +0800] "HEAD HTTP://111.com/images/baidu.png HTTP/1.1" 200 - "-" "curl/7.29.0"
<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@yong-02 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 更改CustomLog配置 1.首先指定一个工具rotatelogs 2.在定义一个日志的名称%Y%m%d 3.规定时间去生成,时间段就为1天,换算成秒,就是86400秒 CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/111.com-access_%Y%m%d.log 86400" combined env=!img 而后保存退出
[root@yong-02 ~]# /usr/local/apache2/bin/apachectl -t Syntax OK [root@yong-02 ~]# /usr/local/apache2/bin/apachectl graceful
[root@yong-02 images]# ls /usr/local/apache2/logs/ abc.com-access_log dummy-host2.example.com-access_log httpd.pid 111.com-access_log abc.com-error_log dummy-host2.example.com-error_log 111.com-error_log access_log error_log
[root@yong-02 images]# curl -x127.0.0.1:80 111.com/123.php 123.php[root@yong-02 images]#
[root@yong-02 images]# ls /usr/local/apache2/logs/ 111.com-access_20180530.log abc.com-access_log dummy-host2.example.com-access_log httpd.pid 111.com-access_log abc.com-error_log dummy-host2.example.com-error_log 111.com-error_log access_log error_log
[root@yong-02 images]# cat /usr/local/apache2/logs/111.com-access_20180530.log 127.0.0.1 - - [30/May/2018:22:19:55 +0800] "HEAD HTTP://111.com/images/baidu.com HTTP/1.1" 404 - "-" "curl/7.29.0" 127.0.0.1 - - [30/May/2018:22:25:55 +0800] "GET HTTP://111.com/123.php HTTP/1.1" 200 7 "-" "curl/7.29.0"
<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>
<IfModule mod_expires.c> ExpiresActive on //打开该功能的开关 ExpiresByType image/gif "access plus 1 days" //定义Type类型,这里是一天 ExpiresByType image/jpeg "access plus 24 hours" //定义Type类型,这里是24小时 ExpiresByType image/png "access plus 24 hours" //定义Type类型 ExpiresByType text/css "now plus 2 hour" //定义Type类型,两小时 ExpiresByType application/x-javascript "now plus 2 hours" // 定义Type类型 ExpiresByType application/javascript "now plus 2 hours" //定义Type类型 ExpiresByType application/x-shockwave-flash "now plus 2 hours" //定义Type类型 ExpiresDefault "now plus 0 min" //定义Type类型 </IfModule>
[root@yong-02 ~]# vim /usr/local/apache2/conf/extra/httpd-vhosts.conf <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com 2111.com.cn #<Directory /data/wwwroot/111.com> #<FilesMatch 123.php> # AllowOverride AuthConfig # AuthName "111.com user auth" # AuthType Basic # AuthUserFile /data/.htpasswd # require valid-user # </FilesMatch> #</Directory> <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/123.com-access_%Y%m%d.log 86400" combined env=!img </VirtualHost> 并保存退出
[root@yong-02 images]# /usr/local/apache2/bin/apachectl -t Syntax OK
[root@yong-02 images]# /usr/local/apache2/bin/apachectl -M |grep expire
[root@yong-02 ~]# vim /usr/local/apache2/conf/httpd.conf 搜索 /expire ,找到该行的配置文件,并去除的注释符 # 号 LoadModule expires_module modules/mod_expires.so 而后保存退出
[root@yong-02 images]# /usr/local/apache2/bin/apachectl -M |grep expire expires_module (shared)
[root@yong-02 images]# curl -x127.0.0.1:80 111.com/images/baidu.png -I HTTP/1.1 200 OK Date: Wed, 30 May 2018 14:45:00 GMT //当前时间 Server: Apache/2.4.33 (Unix) PHP/7.1.6 Last-Modified: Wed, 30 May 2018 13:46:34 GMT ETag: "a46d-56d6c9435c280" Accept-Ranges: bytes Content-Length: 42093 Cache-Control: max-age=86400 //缓存的时间 Expires: Thu, 31 May 2018 14:45:00 GMT //过时时间 Content-Type: image/png