Apache2 mod_proxy:后端服务器将前端服务器记录为所有请求的来源

Apache2 mod_proxy:后端服务器将前端服务器记录为所有请求的来源

我有五台运行 Ubuntu (LAMP) 的服务器。其中一台 (称为 Server1) 接收来自互联网的所有传入请求,并使用 VirtualHosts 和 mod_proxy 将正确的请求发送到 LAN 上的正确服务器。

我的问题是,在我的后端服务器上的所有日志中,所有请求都被记录为来自 Server1 的 IP 的传入请求。

为什么会这样?我该如何解决?

答案1

这就是 Squid 的优秀员工发明的原因X-Forwarded-For

在您的代理服务器上,标头应该已经添加到请求中;mod_proxy处理这个问题。

在后端服务器上,修改现有的日志配置以删除远程主机(%h)并添加该标头的内容(%{X-Forwarded-For}i)。例如:

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b" common_forwarded
CustomLog logs/access_log common_forwarded

相关内容