Linux服务器:关于Apache配置和日志 |
发布时间: 2012/8/11 11:13:05 |
1、设置环境变量
在apache里面,你可以用正则来判断很多变量,然后设定另外一个变量以便后面的配置使用 比如你要判断用户是否访问某个文件夹,然后设定一个变量记录一下: SetEnvIfNoCaseRequest_URI"^\/aslibra"ISSTART=1 SetEnvIfNoCase是指不区分大小写 Request_URI匹配一下"^\/aslibra" 如果是的话,那ISSTART=1,否则就不是1 另外,不记录图片的日志可以是找一下文件路径,然后设定变量供后面使用: SetEnvNOFILES1 CustomLoglogs/access_logcombinedenv=!NOFILES 2、处理盗链 处理盗链一般是在referrer上做判断,见下面这个例子: SetEnvIfNoCaseReferer"^http://www\.aslibra\.com/"local_ref=1 OrderAllow,Deny Allowfromenv=local_ref Allowfrom127.0.0.1 上面是判断来源是上面域名,然后设定为允许访问 SetEnvIfNoCaseReferer"^http://notpermit\.aslibra\.com/"aaa OrderAllow,Deny Allowfromall Denyfromenv=aaa 上面是判断来源,然后不允许该域名 3、日志分割 日志分割可以使用cronolog来处理 安装就比较容易了,跟一般软件一样安装 定义格式: LogFormat"%h%l%u%t\"%r\"%>s%b\"%{Referer}i\"\"%{User-Agent}i\""combined LogFormat"%h%l%u%t\"%r\"%>s%b"common LogFormat"%{Referer}i->%U"referer LogFormat"%{User-agent}i"agent LogFormat"%h%{%T}t\"%r\"%{cookiename}C"record 上面是定义日志格式,你可以定义很多日志格式,以便后面的记录日志使用 比如普通的是combined,有一般要采集的内容,如果要采集cookie(%{cookiename}C)和自定义时间格式(%{%T}t),可以使用上面类似record的写法 CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/www.aslibra.com.%m%d%H"record CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H"combined 以上的例子就是调用cronolog存储日志,后面的参数是自己定义的日志格式 当然,你还可以自定义记录很多条件的日志,比如仅仅要记录/aslibra开始的请求: SetEnvIfNoCaseRequest_URI"^\/aslibra"ISSTART=1 CustomLog"|/Data/apps/cronolog/sbin/cronolog/Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H"recordenv=ISSTART 可以几个CustomLog一起记录的,以此类推就好了。 本文出自:亿恩科技【www.enkj.com】 |