Ermitteln Sie die IP-Adresse des Client Hinter Amazon ELB
Haben wir einige PHP-Server auf EC2 hinter ELB. Wir möchten ermitteln der locale/region durch die IP-Adresse des clients, die eine Verbindung zu unseren Servern. Das problem ist der PHP-Server sehen nur die IP-Adresse der ELB. Wir würden gerne sehen, die IP-Adressen der Kunden weitergegeben, die durch den ELB.
InformationsquelleAutor der Frage Bill Rosmus | 2013-02-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der AWS-docsder ELB sollte die Einstellung des X-Forwarded-For HTTP-header, die bewahrt die ursprüngliche client-ip-Adresse:
Können Sie für den Zugriff mithilfe des folgenden PHP-code (sofern apache):
InformationsquelleAutor der Antwort Ryan Weir
Wenn Sie Apache verwenden, müssen Sie einen Blick auf die mod_remoteip Modul. Es ist enthalten in Apache 2.4 und neuer, aber backports für 2.2 auch gefunden werden kann.
In anderen Worten, Sie können festlegen, welche header zu verwenden (z.B. X-Forwarded-For) und die IP ' s vertrauenswürdig sind (z.B. load-balancer). Die vertrauenswürdigen IPs werden entfernt aus dem header und die ersten nicht vertrauenswürdigen IP ist als der ursprüngliche client. Diese IP wird dann intern von Apache, die in anderen Modulen, wie z.B. für die Protokollierung von host-Authentifizierung, etc.
Dies macht es mehr als nützlich, nur die Handhabung der X-F-F-header in PHP, da mod_remoteip kümmert sich um den gesamten stack sorgt dafür, dass Ihre access-logs korrekt sind, etc.
Hinweis: Es gibt auch ein Modul mod_rpaf, ist der Vorgänger. Es ist viel mehr begrenzt. Zum Beispiel, es nicht in den Griff Vertrauenswürdige ip-Bereiche. Sie benötigen diese, da Sie nicht wissen, ELB IP vorher. Es kann auch nicht mit mehreren hops, wie der ELB vor dem Lackieren, vor dem Apache. Ich würde vorschlagen, das überspringen der rpaf-Modul und mit remoteip statt.
InformationsquelleAutor der Antwort Martijn Heemels
Dies ist ein großes problem, so versuchen Sie dies 😀
InformationsquelleAutor der Antwort Sabbir
Scheint es mod_cloudflare vielleicht eine bessere option für einige, gerade v2.2 Benutzer
Lesen Sie mehr zu diesem chap ' s blog:
http://knowledgevoid.com/blog/2012/01/13/logging-the-correct-ip-address-using-apache-2-2-x-and-amazons-elastic-load-balancer/
InformationsquelleAutor der Antwort Steve Horvath
Optimale Lösung für PHP-app hinter AWS ELB:
Hinweise: X-Forwarded-For kann eine durch Komma-Leerzeichen-separierte Liste von proxies, mit der letzten in der Liste ist derjenige, verbunden mit AWS' ELB, und daher die einzige, der wir Vertrauen können, als nicht gefälscht.
InformationsquelleAutor der Antwort bleater
können Sie den client gemeldet, um Ihre ip-Adresse explizit?
Überprüfen Sie diese post.
InformationsquelleAutor der Antwort zzk