通过负载均衡器替代方案从 Web 应用程序获取客户端 IP

通过负载均衡器替代方案从 Web 应用程序获取客户端 IP

如果是 Web 应用程序服务器(例如nginx&php-fpm)位于负载均衡器后面,例如AWS 的 ELB

Client -> Load-Balancer -> Web Application server

要从 Web 应用程序中获取真实的客户端 IP,我有两种方法可以实现:

  1. 处理 Web 服务器上的转发 IP,如设置nginx真实IP模块

  2. 处理 Web 应用程序上的转发 IP,就像更改为从信任代理通过转发标头获取 IP 一样。

总体来说哪种方法更好?或者还有其他更好的方法吗?

谢谢。

答案1

最后我决定通过以下方式处理 Web 服务器上的转发 IPnginx真实IP模块

优点:

  1. 在Web服务器上处理也可以解决access.log IP问题。

在应用程序上的处理也需要对 Web 服务器做同样的事情,以便使用正确的 IP 制作访问日志。

  1. 性能稍好一些。

  2. Web应用程序不需要了解太深的网络结构,这可以提高工作规范。


如果您使用 Apache 作为 Web 服务器,mod_remoteip 模块可以对真实 IP 执行相同操作。

相关内容