用Rails和Nginx获取客户端的真实IP地址?

我的服务器没有公共IP地址,所以我不知道如何获得真实客户端的IP地址。

这是我的nginxconfiguration:

location / { proxy_pass http://domain1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } 

在我的Rails应用程序的控制器都request.iprequest.remote_ip返回我的服务器的网关地址。

我怎样才能得到客户的真实IP?

如何获得X-Forwarded-For来自Rails请求的值?

你应该得到X-forward-for的标题值

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

Rails应该是自动为我们做的,但是现在的3.x似乎已经被打破了

我正在使用这个:

 def ip() request.env['HTTP_X_FORWARDED_FOR'] || request.remote_ip end