如果是 Web 应用程序服务器(例如nginx&php-fpm)位于负载均衡器后面,例如AWS 的 ELB:
Client -> Load-Balancer -> Web Application server
要从 Web 应用程序中获取真实的客户端 IP,我有两种方法可以实现:
处理 Web 服务器上的转发 IP,如设置nginx真实IP模块。
处理 Web 应用程序上的转发 IP,就像更改为从信任代理通过转发标头获取 IP 一样。
总体来说哪种方法更好?或者还有其他更好的方法吗?
谢谢。
答案1
最后我决定通过以下方式处理 Web 服务器上的转发 IPnginx真实IP模块。
优点:
- 在Web服务器上处理也可以解决access.log IP问题。
在应用程序上的处理也需要对 Web 服务器做同样的事情,以便使用正确的 IP 制作访问日志。
性能稍好一些。
Web应用程序不需要了解太深的网络结构,这可以提高工作规范。
如果您使用 Apache 作为 Web 服务器,mod_remoteip 模块可以对真实 IP 执行相同操作。