我有一台运行Apache的服务器,通常会收到不需要的代理请求,主要针对www.yandex.ru或www.baidu.com等网站。 我没有加载mod_proxy ,所以这些请求实际上不工作。 但是,会发生什么是返回的内容对应我的网站的主页,大概是因为这是默认的虚拟主机。 问题是,我宁愿不把完整的索引页面发回给显然对我的网站没有兴趣的人。 我认为这是浪费带宽和资源。 我宁愿回应一个HTTP错误代码(400我想)来表示我的服务器不能作为代理工作,也让我感觉更好,当我检查访问日志;-)
build议将Apacheconfiguration为返回代理请求的错误代码的方式是什么? (通过“代理请求”我的意思是在HTTP请求行中提供一个绝对的URL。)和哪个HTTP错误代码是最适合这个?
顺便说一下,我以为这已经被问过了,但我看了,没有find它。
您可以简单地configuration一个拒绝所有请求的默认虚拟主机:
<VirtualHost *:80> ServerName deny.all <Location /> Order allow,deny Deny from all </Location> </VirtualHost>
有了这个,访问未明确configuration的虚拟主机的所有请求将被HTTP错误代码403(“Forbidden”)拒绝。
另外请务必查看有关代理滥用的Apache wiki页面以获取更多详细信息。 除了上面的解决scheme,他们也会给你提示一个基于mod_rewrite的解决scheme。