阿权今天处理了apache的配置问题:
1 设置环境变量
2 处理盗链方法
3 日志分割保存

1 设置环境变量

在apache里面,你可以用正则来判断很多变量,然后设定另外一个变量以便后面的配置使用
比如你要判断用户是否访问某个文件夹,然后设定一个变量记录一下:
SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1


SetEnvIfNoCase 是指不区分大小写
Request_URI匹配一下 "^\/aslibra"
如果是的话,那ISSTART=1,否则就不是1

另外,不记录图片的日志可以是找一下文件路径,然后设定变量供后面使用:
<FilesMatch "\.(ico|gif|jpg|png|swf)">
    SetEnv NOFILES 1
</FilesMatch>

CustomLog logs/access_log combined env=!NOFILES


2 处理盗链

处理盗链一般是在referrer上做判断,见下面这个例子:

SetEnvIfNoCase Referer "^http://www\.aslibra\.com/" local_ref=1
<FilesMatch "\.(rar|zip|iso|dmg|exe|rmvb)">
Order Allow,Deny
Allow from env=local_ref
Allow from 127.0.0.1
</FilesMatch>


上面是判断来源是上面域名,然后设定为允许访问

    SetEnvIfNoCase Referer "^http://notpermit\.aslibra\.com/" aaa
    <FilesMatch "\.(rar|zip|iso|dmg|exe|rmvb|gif|jpg)">
       Order Allow,Deny
       Allow from all
       Deny from env=aaa
    </FilesMatch>


上面是判断来源,然后不允许该域名

3 日志分割

日志分割可以使用 cronolog 来处理
安装就比较容易了,跟一般软件一样安装

安装过程介绍:
1 获取文件
wget http://cronolog.org/download/cronolog-1.6.2.tar.gz
2 解压
tar -zxvf cronolog-1.6.2.tar.gz
3 编译
./configure --prefix=/Data/apps/cronolog
make
make intall

定义格式:

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 开始的请求:

SetEnvIfNoCase Request_URI "^\/aslibra" ISSTART=1
CustomLog "|/Data/apps/cronolog/sbin/cronolog /Data/weblog/%Y/%m/%d/aslibra.com.%m%d%H" record env=ISSTART


可以几个CustomLog一起记录的,以此类推就好了

也有一些别的例子:

# 不记录本机发出的请求
SetEnvIf Remote_Addr "127\.0\.0\.1" dontlog
# 不记录对robots.txt文件的请求
SetEnvIf Request_URI "^/robots\.txt$" dontlog
# 记录其他请求
CustomLog logs/access_log common env=!dontlog



原创内容如转载请注明:来自 阿权的书房
收藏本文到网摘
Tags:
发表评论
AD
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML 打开UBB 打开表情 隐藏
昵称   密码   游客无需密码
网址   电邮   [注册]
               

验证码 不区分大小写
 

阅读推荐

服务器相关推荐

开发相关推荐

应用软件推荐