使用反向端口转发时,将客户端IPlogging在apache访问日志中

我有一个没有公共IP地址(LTEnetworking)的家庭服务器,所以我使用另一台具有公共IP地址的服务器进行反向端口转发

我使用以下ssh参数在我的家庭服务器上转发端口443和80:

-R *:80:*:80 -R *:443:*:443 

所有的作品完美,我的家庭服务器的网站可以通过公共IP地址从互联网访问。 但我有一个问题 – 我错过了我的apache访问日志中的客户端的IP地址。 而不是我在那里的IP地址只有::1而不是IP地址的条目:

 ::1 - - [11/Mar/2017:14:40:57 +0100] "GET / HTTP/1.0" 200 1775 "-" "-" 

我认为这是反向端口转发的结果。 我尝试添加seeral参数到Apache的LogFormatconfiguration,但没有成功。 有没有办法让客户端的真实IP地址logging在Apache访问日志?

通过SSH隧道转发时无法获取客户端IP地址。 您看到的所有Apache都是TCP连接的远程IP,它是您的SSH隧道的端点。

为了得到真正的客户端IP,您需要在您的服务器上设置一个具有公共IP地址的反向代理,然后在HTTP头中添加客户端IP。

之后,您需要将configuration添加到您的Apache,其中包括HTTP标头中的IP到日志文件。