reverse proxy basic problem
January 29, 2021 02:44AM
Hallo zusammen,

ich habe noch nicht viel Erfahrung mit nginx und mein Problem ist wahrscheinlich eher Einsteiger-Niveau.
Ich habe eine Standard html-Webseite laufen. Dies ist keine offiziell gehostete Seite, sondern eher eine interne Service-Webseite eines Gerätes. Sie läuft auf einem PC (PC-device) zusammen mit nginx, der die Daten für die Webseite zur Verfügung stellt.
Wenn ich diese Webseite über einen direkt angeschlossenen PC (PC-browser) aufrufe, funktioniert alles wunderbar.
Nun möchte ich einen weiteren PC (PC-proxy) als Reverse-Proxy zwischenschalten, auf dem ebenfalls nginx läuft.
PC-device ist mit PC-proxy über 192.168.5.0 verbunden.
PC-browser ist mit PC-proxy über 192.168.1.0 verbunden.
Der PC-browser sieht somit PC-device nicht mehr direkt.
Die index.html bekomme ich nun über eine proxy-pass Konfiguration geladen, aber alle Daten, die nachgeladen werden sollen, werden nicht mehr gefunden.
Ich hab einiges ausprobiert, aber komme irgendwie nicht weiter. Diese Struktur ist doch eigentlich eine Standard reverse-proxy Struktur.

Folgende Konfiguration:

PC-device
/pfad/index.html
<img src="/images/logo.jpg" …>

nginx.conf
location /images/
absoluter_image_pfad

PC-proxy
nginx.conf
location /device/
proxy_pass 192.168.5.1/pfad
index.html

PC-browser
url: 192.168.1.1/device/index.html

=> index.html wird korrekt geladen vom PC-device, da die proxy-pass Anweisung den Weg weist.
=> aber das Logo-Bild, das die index.html nachladen will, wird nicht gefunden.

Wie lädt eine Web-site Daten über einen Proxy nach ?
Wie kann nginx(PC-proxy) wissen, dass er das Bild /images/logo.jpg vom PC-device laden soll, wenn die Seite mit “192.168.1.1/device/index.html” gestartet ist?
Gibt es einen Weg alle internen Aufrufe, mit denen Informationen nachgeladen werden auf PC-device zu leiten, wenn das ganze aber mit “192.168.1.1/device/index.html” gestartet ist ?

Dank für jeden Tipp.
Re: reverse proxy basic problem
March 13, 2021 11:50AM
Hallo,

ich habe folgende Konfiguration am mit diversen Webservern laufen:

location / {
proxy_pass https://webserver;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

Mit der Angabe "proxy_pass" wird lediglich die IP-Adresse oder Domainname ohne Pfad übergeben.

Manche Webseiten haben beim Aufruf über die Proxy eine Info angezeigt, dass die aufgerufene Domain nicht in der "Trusted"-Liste enthalten ist. In solchen Fällen muss lediglich die Liste innerhalb der Webseite vom Ziel-Webserver ergänzt werden.

Vielleicht funktioniert der Aufruf damit besser?
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 102
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready