我有一个 Apache Web 服务器,上面托管着许多网站。有些网站有 HTTP 基本身份验证。我允许一些主机访问网站,从而有效地绕过 HTTP 身份验证。
例如:
Allow from 10.10.
我现在在 Web 服务器前面放置一个 Varnish 缓存服务器,现在对 Web 服务器的所有请求都显示为来自 Varnish 服务器 (192.168.1.101)。
以前允许无需 HTTP 身份验证即可访问网站的白名单 IP 地址现在需要进行 HTTP 授权。
我无法设置从 192.168 开始的允许,因为这实际上允许了整个 Web 访问。所以我的问题是。有什么方法可以让 Varnish 将客户端 IP 地址传递给后端服务器以防止发生这种情况?或者有人知道解决这个问题的其他方法吗?提前致谢。
答案1
配置 Varnish 发送 X-Real-IP 并使用mod_rpaf对于 Apache2 。
IP 地址将设置为 X-Forwarded-For (Varnish 自动添加)
还可以通过添加以下代码禁用 Varnish 使用 Http Auth 缓存内容
if (req.http.Authorization) {
pass;
}
在 vlc_fetch 中,因为否则未经授权的客户端可以绕过身份验证。