11.22訪問日志不記錄靜態(tài)文件
編輯虛擬主機(jī)配置文件“httpd-vhosts.conf”:
[root@1~]#vim/usr/local/apache2.4/conf/extra/httpd-vhosts.conf …… <VirtualHost*:80> DocumentRoot"/data/wwwroot/111.com" ServerName111.com ServerAliaswww.example.com <IfModulemod_rewrite.c> RewriteEngineon RewriteCond%{HTTP_HOST}!^111.com$ RewriteRule^/(.*)$http://111.com/$1[R=301,L] </IfModule> ErrorLog"logs/111.com-error_log" SetEnvIfRequest_URI".*.gif$"img SetEnvIfRequest_URI".*.jpg$"img SetEnvIfRequest_URI".*.png$"img SetEnvIfRequest_URI".*.bmp$"img SetEnvIfRequest_URI".*.swf$"img SetEnvIfRequest_URI".*.js$"img SetEnvIfRequest_URI".*.css$"img #以上為定義變量:將所有關(guān)于圖片的請求定義為變量img CustomLog"logs/111.com-access_log"combinedenv=!img #“env=!img”表示非img變量。本行命令的含義是:不記錄關(guān)于變量img的請求日志。 </VirtualHost>
說明:將所有訪問圖片的請求定義為變量img,在訪問記錄(日志)中將其排除即可。重新加載后使用curl訪問img變量中所指定格式的文件內(nèi)容時將不會產(chǎn)生訪問記錄。
擴(kuò)展: apache日志記錄客戶端請求的域名正常情況下,根本就沒有必要記錄這一項,畢竟咱們大都根據(jù)虛擬主機(jī)來設(shè)置相應(yīng)的訪問日志,但也有個別的情況,比如ServerName*.abc.com這樣泛解析的形式,所以有必要記錄一下用戶請求的域名到底是哪個。而apache的LogFormat中正好有一項值滿足了這個需求。即%V這里是大寫的V,小寫的v記錄的是咱們在虛擬主機(jī)中設(shè)置的ServerName,這個的確是沒有必要記錄的。
apache只記錄指定URI的日志需求:把類似請求www.aaa.com/aaa/...這樣的請求才記錄日志。
方法:在httpd.conf或者相關(guān)的虛擬主機(jī)配置文件中添加:
SetEnvIfRequest_URI"^/aaa/.*"aaa-request CustomLog"|/usr/local/apache/bin/rotatelogs-l/usr/local/apache/logs/aaa-access_%Y%m%d.log86400"combinedenv=aaa-request
原理和不記錄圖片等靜態(tài)訪問的日志(http://www.lishiming.net/thread-561-1-1.html)是一樣的。
apache日志中記錄代理IP以及真實客戶端IP默認(rèn)情況下log日志格式為:
LogFormat"%h%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i""combined
,其中%h是記錄訪問者的IP,如果在web的前端有一層代理,那么這個%h其實就是代理機(jī)器的IP,這不是我們想要的。我們需要的是記錄客戶端的真實IP,“%{X-FORWARDED-FOR}i”該字段會記錄客戶端真實IP,所以log日志的格式應(yīng)改為:
LogFormat"%h%{X-FORWARDED-FOR}i%l%u%t"%r"%>s%b"%{Referer}i""%{User-Agent}i""combined 11.23訪問日志切割 配置
編輯虛擬主機(jī)配置文件:
[root@1~]#vim/usr/local/apache2.4/conf/extra/httpd-vhosts.conf …… <VirtualHost*:80> DocumentRoot"/data/wwwroot/111.com" ServerName111.com ServerAliaswww.example.com <IfModulemod_rewrite.c> RewriteEngineon RewriteCond%{HTTP_HOST}!^111.com$ RewriteRule^/(.*)$http://111.com/$1[R=301,L] </IfModule> ErrorLog"logs/111.com-error_log" SetEnvIfRequest_URI".*.gif$"img SetEnvIfRequest_URI".*.jpg$"img SetEnvIfRequest_URI".*.png$"img SetEnvIfRequest_URI".*.bmp$"img SetEnvIfRequest_URI".*.swf$"img SetEnvIfRequest_URI".*.js$"img SetEnvIfRequest_URI".*.css$"img CustomLog"|/usr/local/apache2.4/bin/rotatelogs-llogs/111.com-access_%Y%m%d.log86400"combinedenv=!img #使用rotatelogs工具,以系統(tǒng)時間為基準(zhǔn),每天切割一次日志,并且日志名字格式為“111.com-access_%Y%m%d.log”。 #每小時切割一次日志,語法: #CustomLog"|/usr/local/apache2.4/bin/rotatelogslogs/access_%Y%m%d%H.log3600"combined
說明:rotatelogs是Apache切割日志的工具;-l表示使用系統(tǒng)(CST=Chinesetime)時間,如果加-l選項,將以默認(rèn)的(UTC)時間為準(zhǔn);日志文件名“%Y%m%d”表示年月日;時間間隔設(shè)定為一天(1day=24h=1440min=86400s)。
檢測 重載配置文件:[root@1111.com]#/usr/local/apache2.4/bin/apachectl-t SyntaxOK [root@1111.com]#/usr/local/apache2.4/bin/apachectlgraceful 訪問、檢測日志:
[root@1~]#curl-x192.168.8.131:80111.com/http.jpg-I [root@1111.com]#ls/usr/local/apache2.4/logs/ 111.com-access_20170801.log111.com-error_logabc.com-error_logerror_log 111.com-access_logabc.com-access_logaccess_loghttpd.pid
說明:配合計劃任務(wù)使用,定期清理日志文件,避免日志文件累計導(dǎo)致磁盤空間不足。
擴(kuò)展: rotatelogs命令語法:rotatelogs[-l]logfile[rotationtime[offset]]rotatelogs[filesizeM]logfile
選項:-l:使用本地時間代替GMT時間作為時間基準(zhǔn)。注意:在一個改變GMT偏移量(比如夏令時)的環(huán)境中使用-l會導(dǎo)致不可預(yù)料的結(jié)果。所以一定要加上-l否則出現(xiàn)的日志時間和實際時間是相差8小時的。rotationtime:日志文件滾動的以秒為單位的間隔時間。offset:相對于UTC的時差的分鐘數(shù)。如果省略,則假定為”0″并使用UTC時間。比如,要指定UTC時差為”-5小時”的地區(qū)的當(dāng)?shù)貢r間,則此參數(shù)應(yīng)為”-300″。filesizeM:指定以filesizeM文件大小滾動,而不是按照時間或時差滾動。
日志切割方法2:使用cronolog命令:
一:每一天建立一個新日志 CustomLog"|bin/cronologlogs/access_%Y%m%d.log"combined 二:每小時建立一個新日志 CustomLog"|bin/cronologlogs/access_%Y%m%d%h.log"combined 11.24靜態(tài)元素過期時間
當(dāng)瀏覽器訪問網(wǎng)站時會把靜態(tài)文件(如圖片文件、css、js文件等)緩存到本地電腦,這樣下次訪問的時候就不用去遠(yuǎn)程下載了,可以自定義清除該部分緩存的時間,即設(shè)定靜態(tài)元素過期時間。該設(shè)置可用于優(yōu)化網(wǎng)站,特別是公司內(nèi)網(wǎng)。
配置編輯虛擬主機(jī)配置文件:
[root@1~]#vim/usr/local/apache2.4/conf/extra/httpd-vhosts.conf …… <VirtualHost*:80> DocumentRoot"/data/wwwroot/111.com" ServerName111.com ServerAliaswww.example.com <IfModulemod_rewrite.c> RewriteEngineon RewriteCond%{HTTP_HOST}!^111.com$ RewriteRule^/(.*)$http://111.com/$1[R=301,L] </IfModule> <IfModulemod_expires.c> ExpiresActiveon #打開該功能的開關(guān) ExpiresByTypeimage/gif"accessplus1days" ExpiresByTypeimage/jpeg"accessplus24hours" ExpiresByTypeimage/png"accessplus24hours" ExpiresByTypetext/css"nowplus2hour" ExpiresByTypeapplication/x-javascript"nowplus2hours" ExpiresByTypeapplication/javascript"nowplus2hours" ExpiresByTypeapplication/x-shockwave-flash"nowplus2hours" ExpiresDefault"nowplus0min" #以上是定義不同類型的文件緩存的時間 </IfModule> ErrorLog"logs/111.com-error_log" SetEnvIfRequest_URI".*.gif$"img SetEnvIfRequest_URI".*.jpg$"img SetEnvIfRequest_URI".*.png$"img SetEnvIfRequest_URI".*.bmp$"img SetEnvIfRequest_URI".*.swf$"img SetEnvIfRequest_URI".*.js$"img SetEnvIfRequest_URI".*.css$"img CustomLog"|usr/local/apache2.4/bin/rotatelogs-llogs/111.com-access_%Y%m%d.log86400"combinedenv=!img #使用rotatelogs工具,以系統(tǒng)時間為基準(zhǔn),每天切割一次日志,并且日志名字格式為“111.com-access_%Y%m%d.log”。
說明:在配置文件添加mod_expires.c模塊內(nèi)容,其余不變。
檢測檢測語法錯誤: [root@1111.com]#/usr/local/apache2.4/bin/apachectl-t SyntaxOK 檢測Apache配置文件是否開啟expire模塊: [root@1111.com]#/usr/local/apache2.4/bin/apachectl-M|grepexpires
說明:在此未檢測到expires模塊,所以需要編輯Apache配置文件,加載expires模塊。
配置Apache,加載expires模塊編輯Apache配置文件:
[root@1111.com]#vim/usr/local/apache2.4/conf/httpd.conf LoadModuleexpires_modulemodules/mod_expires.so 加載配置文件: [root@1111.com]#/usr/local/apache2.4/bin/apachectl-t SyntaxOK [root@1111.com]#/usr/local/apache2.4/bin/apachectlgraceful 檢查模塊是否開啟: [root@1111.com]#/usr/local/apache2.4/bin/apachectl-M|grepexpires expires_module(shared)
說明:輸入“/”查找expires模塊,并開啟加載該模塊的命令行(去掉#即可)。
再次檢測[root@1111.com]#curl-x192.168.8.131:80111.com/baidu.png-I HTTP/1.1200OK Date:Tue,01Aug201710:17:36GMT Server:Apache/2.4.27(Unix)PHP/5.6.30 Last-Modified:Tue,01Aug201710:13:45GMT ETag:"e7a-555ae670b0840" Accept-Ranges:bytes Content-Length:3706 Cache-Control:max-age=86400 Expires:Wed,02Aug201710:17:36GMT Content-Type:image/png
說明:當(dāng)前時間“Date:Tue,01Aug201710:17:36GMT”,緩存時長“Cache-Control:max-age=86400s”,失效時間“Expires:Wed,02Aug201710:17:36GMT”,即png格式圖片緩存時長為1天。
網(wǎng)頁標(biāo)題:Apache優(yōu)化——日志管理
網(wǎng)址分享:http://chinadenli.net/article14/choege.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、虛擬主機(jī)、網(wǎng)站制作、品牌網(wǎng)站設(shè)計、用戶體驗、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)