For some users, request.remote_ip always return nil. According to the
RAILS’s help:
REMOTE_ADDR is the standard but will fail if the user is behind a proxy.
HTTP_CLIENT_IP and/or HTTP_X_FORWARDED_FOR are set by proxies so check
for these before falling back to REMOTE_ADDR. HTTP_X_FORWARDED_FOR may
be a comma- delimited list in the case of multiple chained proxies; the
first is the originating IP.
The system is running on the Mongrel Cluster behind Apache 2.2 with
mod_proxy, mod_proxy-html, and mod_proxy_balancer
mod_rewrite
mod_deflate
mod_headers
(setup: http://mongrel.rubyforge.org/docs/apache.html)
Would it be due to:
- IPv6 or Asian IP addresses?
- mod_proxy or mod_rewrite??
- …
Any insight?