在 OpenShift 中获取真实的客户端 IP?

Get real client IP in OpenShift?

我试过an application,我用一种方法禁止那些向服务器发送超过5个空请求的人,但问题是,每个人都被阻止了,这是因为每个人都被看到了作为一个独特的 IP。

In the code,我用的方法得到了X-Real-IP,但是它在OpenShift上不起作用,那怎么办呢?

这是我获取 IP 的方式:

x_real_ip = self.request.headers.get("X-Real-IP")            
remote_ip = self.request.remote_ip if not x_real_ip else x_real_ip

更新:我在执行 print(self.request.remote_ip, x_real_ip)

时得到 '127.3.165.129', None)

您想查找 "x-forwarded-for" header 来获取访问者的 ip 地址。您看到的是用户在到达您的 application/gear.

之前经过的反向代理的 IP 地址

您可以参阅开发者中心的这篇文章,了解有关如何在 OpenShift 上路由请求的更多信息:https://developers.openshift.com/en/managing-port-binding-routing.html