使用 .htaccess 在 Varnish 后面阻止 IP

使用 .htaccess 在 Varnish 后面阻止 IP

我遇到了以下问题。我在一台有 5 个 IP 的服务器上正常安装了 apache/varnish,varnish 使用本地 IP 将每个请求发送到 apache(我认为这很正常,因为在后端我可以使用 php 的 $_SERVER['HTTP_X_FORWARDED_FOR'] 获取引荐来源)。

由于 apache 仅获取本地 IP,因此我无法使用 .htaccess 文件的阻止。我deny from在 .htaccess 中的所有内容从未应用过。如果我转到端口 :81(apache 的端口),阻止将正常工作。

我需要做的是找到一种方法来阻止来自 varnish 本身的 IP 或将原始引荐来源 ID 发送回 apache,所有这些都无需重新启动 varnish(当然,如果这不可能,我将不得不这样做...)

我想要阻止的那个特定 IP 变得非常可疑......

谢谢大家

答案1

您应该在 apache 服务器上安装 mod_rpaf。这将使用 X-Forwarded-For 标头中的最后一个 IP 地址更新远程地址。在基于 debian 的系统上:

sudo apt-get install libapache2-mod-rpaf

然后重新启动 apache。

答案2

您可以使用以下方法避免重新启动 Varnish: http://technosophos.com/2010/09/09/varnish-reloading-vcl-configuration-files-varnishadm.html(感谢 alvherre 更新链接)

答案3

我会把它挡在清漆面上

http://www.varnish-cache.org/lists/pipermail/varnish-misc/2011-February/005628.html

它可以更好地扩展

相关内容