垃圾邮件机器人在我的日志文件中造成混乱[Django]
我有一个很不错的Django网站,现在运行得很好。但是我发现我的error.log
文件越来越大,几个月下来已经超过150MB了。原来是一些垃圾机器人在寻找常见的URL漏洞(或者其他什么),不停地访问一些子目录,比如http://mysite.com/ie
或者http://mysite.com/~admin.php
等等。
因为Django会对URL进行重写,它会试图找到合适的模板来处理这些请求,这就导致了TemplateDoesNotExist
的错误,然后出现500错误信息(这是Django自动处理的,不是我设置的)。我把调试功能关掉了,所以他们只能看到一个通用的500错误信息,但这让我的日志文件迅速填满。
有没有办法关闭这种行为?或者干脆屏蔽掉这些IP地址呢?
8 个回答
3
“有没有办法关闭这种行为?” - 500这个错误是绝对必须的。日志记录也是必须的。
“或者干脆封锁那些IP地址?” - 我们多希望能这样做。
其实每个人都有这个问题。几乎所有人都在用Apache的日志轮换功能。其他人要么用操作系统自带的轮换,要么自己写一个。
4
如果你能在用户代理字符串中找到某种规律,你可以使用 DISALLOWED_USER_AGENT
这个设置。我的设置是:
DISALLOWED_USER_AGENTS = (
re.compile(r'Java'),
re.compile(r'gigamega'),
re.compile(r'litefinder'),
)
你可以在 Django 文档 中查看详细说明。
7
嗯,也许可以使用 logrotate 来定期轮换和压缩日志文件,如果现在还没有这样做的话。