Hallo,
ich habe hier ein Rätsel mit Nginx zu knacken. Dieser läuft als Reverse-Proxy, lauscht also am Internet-Netzwerk-Interface auf eingehende HTTPS Verbindungen auf Port 443.
In den Logmeldungen sehe ich Zugriffe auf Dienste die der Reverseproxy mit proxy-forward weiterleitet.
Kurios ist, das die IP-Adresse des Peers einmal eine gültige IP und einmal eine Docker-Netzwerk-IP ist. Ich habe hier in meinem WLAN zwei Laptops, ohne VPN, jeweils mit Chrome und sende auf dieselbe URL einen POST-Request.
Laptop 1:
nginx.1 | app.domain.de 95.215.20.144 - - [02/Mar/2025:13:43:10 +0000] "POST /tools/fetch.php HTTP/2.0" 200 15 "https://app.domain.de/forms/sendinfo" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" "172.18.0.4:8080"
Laptop 2:
nginx.1 | app.domain.de 172.18.0.1 - - [02/Mar/2025:13:43:17 +0000] "POST /tools/fetch.php HTTP/2.0" 200 53 "https://app.domain.de/forms/sendinfo"" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36" "172.18.0.4:8080"
Dementsprechend ist auch der X-Real-IP Header falsch gesetzt. Ich verstehe einfach den Unterschied nicht, warum mal so und mal so?
Die 172.18.0.4 ist die Docker-IP meiner App im Dockernetzwerk. Die 172.18.0.1 die vom Gateway im Docker Netzwerk und die 172.18.0.6 die vom Nginx Reverse-Proxy.