阻止漆后面的IP

我使用清来加快我的网站,但我注意到,因为它在技术上是一个反向代理,所有的IP显示为127.0.0.1 – 我已经通过使用HTTP_X_FORWARDED_FOR ,但这只是修复PHP程序,如我的论坛。 我已经读过类似的问题,在这里人们有问题试图做“否认”在htaccess,它不工作,因为清漆。

在我的研究之后,许多解决scheme表明阻止IP在清漆级别的方法是可行的,不幸的是,这也不起作用。 我已经尝试过Apache的mod_rpaf尝试在htaccess级别阻止IP,但是这也没有做任何事情。

这里是我的清漆代码试图阻止一个示例IP:

 sub vcl_recv { if (client.ip ~ blacklist) { return (synth(403)); } } 

而现在的acl黑名单

 acl blacklist { "1.1.1.1"; } 

有了这个设置,1.1.1.1仍然能够访问网站,并没有带到我的403页面。 澄清,我使用清漆4,所以“错误403”不再兼容,所以你需要使用return

有什么我做错了吗? 其他人是否也需要在清漆水平上阻止IP? 有什么build议么?

提前致谢。

作为参考, 这里是Varnish 4.0的ACL文档。

这应该不重要,但你有没有尝试明确说明networking掩码?

 acl blacklist { "1.1.1.1"/32; } 

在您的堆栈的最前面的层是否是清漆? 如果你用varnishlog查看请求,你看到的是你期望的IP?