Ich habe einige Dienste seit einigen Jahren als Docker-Container auf einem DigitalOcean-Droplet ausgeführt, und kürzlich dachte ich, es sei an der Zeit, einen von ihnen auf die neueste Version zu aktualisieren (der fragliche Dienst ist eine Ghost-Blogging-Plattform). Zuvor verwendete mein Arbeits-Setup Caddy als Reverse-Proxy, sodass ich auf mein Blog zugreifen konnte, indem ich zu ging blog.mydomain.example
. Das Caddyfile-Setup sah folgendermaßen aus:
blog.mydomain.example {
proxy / 192.0.2.5:1268
}
Dabei ist der IP: -Port der des lokalen Ghost Docker-Containers.
Nachdem ich meine Ghost-Instanz auf die neueste Version aktualisiert und dieselbe Konfiguration beibehalten habe, wurde ein seltsamer Fehler angezeigt. Das Navigieren zu blog.mydomain.example
würde lange dauern und dann plötzlich zu https://192.0.2.5:2368 umleiten , was natürlich nicht funktionieren würde, da dies eine lokale IP auf meinem Droplet ist. Nach einer langen Zeit im Internet habe ich schließlich das Update gefunden, bei dem mein Caddyfile wie folgt geändert werden musste:
blog.mydomain.example {
proxy / 192.0.2.5:1268 {
transparent
}
}
Auf der Caddy-Dokumentenseite für Proxys erfahren Sie, was transparent macht:
transparent : Durchläuft Hostinformationen aus der ursprünglichen Anforderung, wie es die meisten Backend-Apps erwarten würden. Abkürzung
für:
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-For {remote}
header_upstream X-Forwarded-Proto {Schema}
Ich habe diesen Artikel auch über Proxy-Typen gelesen , bin aber immer noch verwirrt darüber, was es bedeutet, einen Reverse-Proxy transparent zu machen und warum er in diesem Fall benötigt wurde. Könnte jemand etwas Licht ins Dunkel bringen?
quelle
blog.mydomain.com
) beibehalten oder zum Backend172.17.0.5