如何将远程(用户)IP 从 nginx 传递到托管在 google 容器引擎上的 Rails?

Posted

技术标签:

【中文标题】如何将远程(用户)IP 从 nginx 传递到托管在 google 容器引擎上的 Rails?【英文标题】:How do I pass the remote (users) IP from nginx to Rails hosted on google container engine? 【发布时间】:2016-11-22 16:07:49 【问题描述】:

我在 nginx 上运行乘客并有一个 rails 应用程序服务器。无法获取用户的远程IP..如何获取用户的IP?

我使用nginx.conf.erb,如果需要我可以修改它..

问题(我认为)出现在 google 容器引擎中,它在我的应用程序前面创建了一个负载均衡器。使 request.remote_ip 只获得本地 kubernetes 集群 IP 而不是远程 ip。

【问题讨论】:

Rails: Get Client IP address的可能重复 @Jonathan nope -- 这是特定于 kubernetes 和/或谷歌容器引擎的 【参考方案1】:

这应该很简单,事实上你不必从 Nginx 传递它,它总是作为 headers 出现在 rails 中。您可以通过以下方式访问它,

request.remote_ip

【讨论】:

这给了我 google 容器引擎上 load_balancer 的 ip,而不是用户的 ip

以上是关于如何将远程(用户)IP 从 nginx 传递到托管在 google 容器引擎上的 Rails?的主要内容,如果未能解决你的问题,请参考以下文章