Mon serveur n’a pas d’adresse IP publique, donc je ne sais pas comment obtenir l’adresse IP du client réel.
Ceci est la configuration de mon nginx:
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; }
Dans le contrôleur de mon application Rails, request.ip
et request.remote_ip
renvoient l’adresse de la passerelle de mon serveur.
Comment puis-je obtenir la véritable adresse IP du client?
Comment obtenir la valeur X-Forwarded-For de la demande Rails?
Vous devriez obtenir la valeur d’en-tête X-forwarded-for
Rails était censé le faire automatiquement pour nous, mais il semble être cassé avec le 3.x actuel
J’utilise ceci:
def ip() request.env['HTTP_X_FORWARDED_FOR'] || request.remote_ip end