最近在托管多个基于 django 的站点的服务器上安装了 django 1.6,我收到很多“ERROR: Invalid HTTP_HOST header”错误。这是已知的“特征”。
问题在于请求来自非浏览器,从而触发错误,但未按照 nginx 配置(Nginx 1.6.0)转发。
例如,我设置了一个默认服务器(这也是配置文件中的第一个):
server {
listen 80 default_server;
location / {
return 403 "Forbidden";
}
}
这在浏览器上是有效的(当我测试它时),但是,不知何故,随机机器人会绕过它(并淹没我的电子邮件)。例如,对 IP 地址或autodiscover.mydomain.com
(可能是 outlook/exchange 的东西?)的请求
我也尝试过这个答案,但无济于事,因为他们绕过了默认配置。
有没有办法可以阻止此类访问?
答案1
听起来您想阻止机器人进行随机扫描。您可以通过检查引荐来源来实现这一点。
有一篇很棒的文章http://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html
特别要注意第 10 条——仅允许访问您的域名