{{ cat }}'s docs

22.7.0: 访问控制-日志/缓存


0. 日志配置

错误日志路径,相对路径前面是ServerRoot的路径
ErrorLog "logs/error_log"

log等级: debug, info, notice, warn, error, crit, alert, emerg.
LogLevel warn

log格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common

记录log路径和格式
CustomLog "logs/access_log" common


1. 日志进阶配置

## 如何在日志里禁止记录图片访问记录
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image-request
SetEnvIf Request_URI ".*\.css$" image-request
SetEnvIf Request_URI ".*\.ico$" image-request
CustomLog "logs/301r-access_log" common env=!image-request    
## 凡是image-request的都不记录,env为关键字,"!"取反

## 切割日志
格式:CustomLog "rotatelogs路径 参数 log路径 时间/容量间隔" 格式 选项
CustomLog "|/usr/local/apache2/bin/rotatelogs -l logs/301r-access%Y%m%d_log 86400" common env=!image-request
CustomLog "|bin/rotatelogs /var/log/logfile 86400" common
ErrorLog "|bin/rotatelogs /var/log/errorlog.%Y-%m-%d-%H_%M_%S 5M"

2. 缓存配置

语法:ExpiresByType 类型/编码 "<base> [plus] <数字> 时间单位"

  • "类型/编码"-类型是文件类型,编码
  • ""-access、now(和access一样)、modification
  • "<数字>"-必须是整数
  • "时间单位"-years/months/weeks/days/hours/minutes/seconds
## 主配文件httpd.conf中找到expires的module,打开它
LoadModule expires_module modules/mod_expires.so

## httpd.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/x-shockwave-flash "now plus 2 hours"
    ExpiresDefault "now plus 0 min"
</IfModule>
## 之所以加进主配文件,是因为这是一个全局设置

Contents