一个专门的CentOS盒子,使用lighttpd服务www.newdomain.com 。 但是,用于托pipe旧域名www.olddomain.com相同的IP。
该箱子仍然收到www.olddomain.com请求。
什么是阻止这些请求的最有效的方法?
注意 :我无权访问www.olddomain.com的域名服务器或域名logging
为旧域创build一个虚拟主机,以一个空目录作为根目录(这只会提供404s)。
使用iptables string module 。 虽然这不是最推荐的方式,但是您可能需要考虑这一点,因为您似乎对完全阻止它感兴趣。 string模块需要一个linux内核> = 2.6.14
规则会是这样的 –
/sbin/iptables -I INPUT -p tcp --dport 80 -m string --algo bm --string "www.olddomain.com" -j DROP
但请记住,这可能会阻止合法的stream量。 您必须确认您的旧网域没有出现在您网域中所有网站的任何url请求中。
根据您对我的评论的回应,我会使用iptables或硬件设备来丢弃数据包。 使用iptables将使您的Web服务不必处理请求。 使用不同的硬件设备,如防火墙将是一个更好的select,因为他们在这个更快,然后它从来没有击中你的服务器。
最好的方法是在防火墙级别(如iptables,带有string模块)执行此操作,因为与在“Web服务器”服务(如lighttpd,nginx等)上进行操作相比,消耗的资源更less
但是,您的原始请求提到了HTTPS。 这有点棘手,因为你使用的是相同的IP地址,你只能解密https头部,只要你把它放在你的证书的一面(即:你将不知道它是哪个域名,然后传递给它负载均衡器或Web服务器[1])。
所以我build议你只需在networking服务器级别捕捉它们。 你也可以制作一个基本的301(永久移动)回复,并将其redirect到其他地方。 及时,search引擎不会再给你发送stream量。
[1]。 请注意,有一种方法,通过SNI(服务器名称识别)SSL扩展,但是这变得更加棘手。
如果www.newdomain.com是默认的,那么Web服务器可能会用它来回答任何域的请求。
configuration您的Web服务器只响应www.newdomain.com并忽略其他一切。
(我有一段时间没有使用lighttpd,你需要查看语法。)