2016-04-28 7 views
0

Ich führe ein Play! Anwendung in einem Andock-Container und ich habe ein Problem. Wenn ich die Methode remoteAddress auf eine Anfrage wie folgt aufrufe:
request => request.remoteAddress
Ich bekomme immer die IP-Adresse des Docker Container anstelle der Benutzeradresse IP.So rufen Sie die Remote-IP-Adresse mit Play! in einem Docker Container

Was kann ich tun, um die Adresse IP des Benutzers, der die Anfrage an meine Play gemacht hat, abrufen zu können? Anwendung?

Antwort

1

Versuchen Sie, den Docker-User-Land-Proxy zu deaktivieren. Schauen Sie sich diese Fragen auf der Docker Github
Document how to get real remote client ip for service running in container
Disable Userland proxy by default

Ich glaube --userland-proxy=false ist der Weg, es zu tun.

+0

Vielen Dank für Ihre Antwort! Ich habe versucht, docker mit/usr/bin/docker daemon --userland-proxy = true zu starten, aber es ändert nichts. Ist es der richtige Weg, um fortzufahren? – Simon

+0

@Simon Sie möchten den Proxy deaktivieren, nicht aktivieren. Es ist bereits standardmäßig aktiviert. – kag0

+0

Yep in der Tat, aber ich versuchte mit falsch, nicht wahr, mein schlechtes. Aber anscheinend funktioniert es für eine Anfrage von demselben Host, der den Docker Container gestartet hat, deshalb habe ich gesagt, dass es nichts ändert. Ich versuche es mit meinem Server und ich akzeptiere deine Antwort wenn es funktioniert;) – Simon