拥有一个使用 lighttpd 来提供服务的专用 CentOS 盒子www.newdomain.com
。但是,同一 IP 用于托管旧域www.olddomain.com
。
该框仍然收到请求www.olddomain.com
。
阻止这些请求的最有效方法是什么?
- 通过 iptables 规则
- 根据 lighttpd 中的规则
- 添加 hosts.deny
- 另一个没有想到的选择
注意:我无权访问名称服务器或域记录www.olddomain.com
拥有一个使用 lighttpd 来提供服务的专用 CentOS 盒子www.newdomain.com
。但是,同一 IP 用于托管旧域www.olddomain.com
。
该框仍然收到请求www.olddomain.com
。
阻止这些请求的最有效方法是什么?
注意:我无权访问名称服务器或域记录www.olddomain.com
为旧域创建一个虚拟主机,并将一个空目录作为根目录(这将只提供 404s)。
使用 iptables
string module
。虽然这不是最推荐的方法,但您可能需要考虑一下,因为您似乎有兴趣完全阻止它。字符串模块需要 linux 内核 >= 2.6.14规则是这样的——
但请记住,这可能最终会阻止合法流量。您必须确认您的旧域没有出现在您域中所有站点的任何 url 请求中。
根据您对我评论的回复,我会使用 iptables 或硬件设备来丢弃数据包。使用 iptables 将使您的 Web 服务不必处理请求。使用不同的硬件设备(例如防火墙)将是更好的选择,因为它们在这方面要快得多,而且永远不会攻击您的服务器。
最好的方法是在防火墙级别(例如 iptables,带有字符串模块)执行此操作,因为与在“Web 服务器”服务(例如 lighttpd、nginx 等)上执行此操作相比,您消耗的资源更少
但是,您的原始请求提到了 HTTPS。这有点棘手,因为您使用的是相同的 IP,并且您只能解密 https 标头,一旦您将证书提供给它(即:在将它传递给之前,您将不知道它用于哪个域)负载平衡器或 Web 服务器 [1])。
所以我建议您只需在网络服务器级别捕获它们。您还可以设计一个基本的 301(永久移动)回复并将它们重定向到其他地方。随着时间的推移,搜索引擎将不再向您发送流量。
[1]. 请注意,有一种方法可以通过 SNI(服务器名称标识)SSL 扩展,但这会变得有点棘手。
如果 www.newdomain.com 是默认值,Web 服务器很可能会使用它来回答对任何域的请求。
将您的网络服务器配置为仅响应 www.newdomain.com 并忽略其他所有内容。
(我有一段时间没有使用 lighttpd,你需要查找语法。)