我是一个小菜鸟,所以忍受着我。
我经常检查我的日志的乐趣,我得到了很多(数千)这些错误: http : //pastebin.com/i0iSKDCW
我有问题的服务器是一个Burst.net VPS,我想知道如果我已经分配了别人的旧IP,他们离开他们的域configuration或somesuch?
我想要做的就是使用iptables或者其他方法来拒绝所有这样的请求(主机:eciou.net),而不让它们进入Nginx(我在Nginx下运行一些缓慢的软件)。
解
正如下面的精彩人物所build议的,我只是将其添加到我的configuration文件中:
server {listen [::]:80; server_name eciou.net; 位置/ {root / srv / http / static / eciou; index index.html; }}
请注意,[:]:80是因为我的服务器也设置为接受IPv6。 通常我相信只有80人会这样做。
是的,你最有可能得到一个以前使用的IP来承载eciou.net域名。
不幸的是,用iptables过滤这样的请求并不容易,因为它运行在较低的OSI模型级别上,并且不知道Host:… HTTP头的任何信息。
你可以在nginx中过滤这样的请求,并防止它们到达你沉重的软件。 这可以通过使用$ host环境variables来完成: http : //wiki.nginx.org/HttpCoreModule#.24host
这是一个快速的例子,将返回404请求到这个域:
if ($host ~* "eciou.net") { return 404; }
我build议为所有这些请求返回404,因为..好吧,因为404意味着“未find”,这真的发生在这里。
例如:
server { listen 80; # only port means "listen all interfaces" server_name eciou.net; log_not_found off; # if you do not want to log all these 404's root /srv/http/static/eciou; location / {} }
在这个设置中,Nginx会在文件系统中search请求的文件。 没什么大不了的,但是如果你担心的话, return 404会更有效(而不是root + location )