0

我已经测试了很多前端代理,例如 HAProxy、Apache、Nginx 和 Lighttpd,但在我的 tornado 后端服务器的日志中,我只是被前端服务器访问。意思是,我想知道正在访问的客户端的真实 IP,所以我的日志分析器认为我的访问次数超过了 1。

最简单的方法是什么?

后端是 tornado python,前端可以是上面的任何一个,但我目前配置了 nginx。

4

1 回答 1

0

你有几个选择。最容易实现的是简单地使用 x-forwarded-for 标头:

http://en.wikipedia.org/wiki/X-Forwarded-For

要在 haproxy 中启用 x-forwarded-for,只需添加:

期权转发

http://cbonte.github.io/haproxy-dconv/configuration-1.4.html#4.2-option%20forwardfor

如果您不想使用 x-forwarded-for 标头,那么您可以尝试推动在龙卷风中实现“代理协议”,或者考虑使用类似 gunicorn 的东西。http://gunicorn.org/。PROXY 协议通过将原始 L4 信息添加到 L7 数据的末尾来工作。接收服务器必须理解代理协议,否则它看起来就像一个损坏的数据包。

于 2013-08-05T13:41:08.393 回答