Apache优化——日志管理
编辑虚拟主机配置文件:# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
……
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.example.com
RewriteEngine on
RewriteCond %{HTTP_HOST} !^111.com$
RewriteRule ^/(.)$ http://111.com/$1
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 RequestURI ".*.css$" img
CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com-access%Y%m%d.log 86400" combined env=!img
#使用rotatelogs工具,以系统时间为基准,每天切割一次日志,并且日志名字格式为“111.com-access_%Y%m%d.log”。
#每小时切割一次日志,语法:
#CustomLog "|/usr/local/apache2.4/bin/rotatelogs logs/access_%Y%m%d%H.log 3600" combined
说明: rotatelogs是Apache切割日志的工具;-l表示使用系统(CST=Chinese time)时间,如果加-l选项,将以默认的(UTC)时间为准;日志文件名“%Y%m%d”表示年月日;时间间隔设定为一天(1day=24h=1440min=86400s)。
检测
重载配置文件:
# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
# /usr/local/apache2.4/bin/apachectl graceful
访问、检测日志:
# curl -x192.168.239.187:80 111.com/http.jpg -I
# ls /usr/local/apache2.4/logs/
111.com-access_20180321.log111.com-error_log abc.com-error_logerror_log
111.com-access_log abc.com-access_logaccess_log httpd.pid
说明: 配合计划任务使用,定期清理日志文件,避免日志文件累计导致磁盘空间不足。
扩展:
rotatelogs命令
语法: rotatelogs [ -l ] logfile [ rotationtime [ offset ]] rotatelogs [ filesizeM ]logfile
选项: -l:使用本地时间代替GMT时间作为时间基准。注意:在一个改变GMT偏移量(比如夏令时)的环境中使用-l会导致不可预料的结果。所以一定要加上-l 否则出现的日志时间和实际时间是相差8小时的。 rotationtime:日志文件滚动的以秒为单位的间隔时间。 offset:相对于UTC的时差的分钟数。如果省略,则假定为”0″并使用UTC时间。比如,要指定UTC时差为”-5小时”的地区的当地时间,则此参数应为”-300″。 filesizeM:指定以filesizeM文件大小滚动,而不是按照时间或时差滚动。
日志切割方法2:
使用cronolog命令:
一:每一天建立一个新日志
CustomLog "|bin/cronolog logs/access_%Y%m%d.log" combined
二:每小时建立一个新日志
CustomLog "|bin/cronolog logs/access_%Y%m%d%h.log" combined
11.24 静态元素过期时间
当浏览器访问网站时会把静态文件(如图片文件、css、js文件等)缓存到本地电脑,这样下次访问的时候就不用去远程下载了,可以自定义清除该部分缓存的时间,即设定静态元素过期时间。该设置可用于优化网站,特别是公司内网。
页:
[1]