如何将远程(用户)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?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C++/CLI Wrapper 将变量参数从托管传递到非托管?