Ich habe Nginx als meinen extern sichtbaren Webserver konfiguriert, der über HTTP mit einem Backend kommuniziert.
Das Szenario, das ich erreichen möchte, ist:
- Der Client sendet eine HTTP-Anfrage an nginx, die über HTTPS an dieselbe URL umgeleitet wird
- Nginx-Proxies fordern über HTTP das Backend an
- nginx erhält eine Antwort vom Backend über HTTP.
- nginx gibt dies über HTTPS an den Client zurück
Meine aktuelle Konfiguration (wo das Backend richtig konfiguriert ist) ist:
Server { höre 80; Servername localhost; Ort ~. * { proxy_pass http: // backend; proxy_redirect http: // backend https: // $ host; proxy_set_header Host $ host; } }
Mein Problem ist, dass die Antwort an den Client (Schritt 4) über HTTP und nicht über HTTPS gesendet wird. Irgendwelche Ideen?
quelle
Ich verwende die folgende Konfiguration in der Produktion
quelle
proxy_set_header X-Forwarded-Proto https;
hat den Trick für mich getan.quelle