Was genau ist ein „transparenter Reverse Proxy“?

7

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.examplewü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?

ROODAY
quelle

Antworten:

10

Hier bedeutet dies, dass Caddy die Anforderung nicht ändert, indem der HTTP-Host-Header entfernt wird, wenn die Anforderung im Docker-Container an Ihren Webserver übergeben wird.

Dies können die Gründe sein, warum es jetzt erforderlich ist:

  1. Ihre Blog-Software wurde aktualisiert und möchte nun, dass der HostHeader mit dem in der Software eingerichteten Hostnamen übereinstimmt.
  2. Das Proxy-Verhalten von Caddy wurde so geändert, dass der HostHeader jetzt standardmäßig entfernt wird.
Tero Kilkanen
quelle
2
Genauer gesagt, der Host-Header wird auf keinen Fall buchstäblich entfernt. Es ist nur die Frage, ob der Header von der ursprünglichen Anfrage ( blog.mydomain.com) beibehalten oder zum Backend 172.17.0.5
geändert wird
Danke für die Klarstellung. Ich habe Caddy selbst nicht benutzt, daher kenne ich die genauen Details nicht.
Tero Kilkanen