Mon environnement a des demandes d'utilisateurs passant par un certain nombre de systèmes:
[Client] -> [ELB] ---> [nginx] -> [web]
(ELB = AWS Elastic Load Balancer)
Grâce à cette réponse , j'ai nginx déterminant et passant la bonne adresse IP du client aux serveurs en amont (web) avec les en X-Forwarded-For
- X-Real_IP
têtes et . La configuration nginx pertinente:
real_ip_header X-Forwarded-For;
set_real_ip_from 10.0.0.0/8;
real_ip_recursive on;
proxy_set_header X-Real-IP $remote_addr;
Mon problème est le suivant: le module Real IP dans nginx remplace la $remote_addr
variable existante par le résultat de ses X-Forwarded-For
calculs. Cela me donne l'IP du client d'origine, mais je perds l'adresse IP du système qui a réellement envoyé la demande au proxy (c'est-à-dire l'ELB).
Dans l'ensemble, avoir l'adresse IP du client est plus important pour moi, mais je voudrais pouvoir enregistrer la chaîne complète des demandes afin que je puisse comprendre (et déboguer) comment le trafic circule. Actuellement, je ne peux demander à nginx que de journaliser l'adresse IP du client, sa propre adresse IP et l'adresse IP du serveur en amont. J'aimerais également pouvoir enregistrer l'IP ELB.
Je vois que X-Istence a posé la même question en 2013, avec peu de chance. Quelque chose a-t-il changé ou amélioré depuis?
$realip_remote_addr
. Cela fonctionne à merveille. J'essayais réellement de faire fonctionner proxy_protocol et je suis tombé sur les notes de mise à jour nginx pour 1.9.7