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