lebowski23
Goto Top

Portweiterleitung bei zwei Dockerhosts

Hallo,

ich habe zwei Dockerhosts laufen. Es gibt eine Portweiterleitung von Port 80 und 443 auf den ersten Host. Nun will ich es erreichen, dass eine Anfrage sub.meine-domain.de:8443 an den zweiten Dockerhost weitergeleitet wird. Das klappt erstmal schon. Allerdings nutze ich die letsencrypt-nginx-companion. Das Zertifikat kann nicht eingerichtet werden, da bei der Anfrage von letsencrypt nicht der Port benutzt wird.

Wie kann ich vorgehen?
Gibt es eine andere Lösung? Kann man den ersten Dockerhost (auch nginx und letsencrypt) beibringen, Anfragen an subdomains an den zweiten Host weiterzuleiten?

Besten Dank

Content-ID: 666619

Url: https://administrator.de/contentid/666619

Ausgedruckt am: 22.11.2024 um 04:11 Uhr

StefanKittel
StefanKittel 11.05.2021 um 10:04:35 Uhr
Goto Top
Hallo,

üblich wäre einen Reverse-Proxy davorzuschalten der anhand der Domäne auf die beiden Server verteilt.

Oder Du kaufst Zertifikate.
Die kosten inzwischen kaum noch was.

Stefan
Tezzla
Tezzla 11.05.2021 aktualisiert um 13:19:33 Uhr
Goto Top
Oder man zieht das Zertifikat per DNS Eintrag: https://letsencrypt.org/de/docs/challenge-types/

DNS Challenge.

Dann brauch man keinen Reverse Proxy (was aber sauberer wäre).

VG
Lebowski23
Lebowski23 11.05.2021 um 16:13:09 Uhr
Goto Top
Hallo,

im meinem Fall arbeitet der nginx auf dem dockerhost1 ja als reverse proxy. Kann man nginx auf dockerhost1 anweisen, dass er, falls die Anfrage von einer bestimmen domain auf den zweiten dockerhost weiterleitet?


Besten Dank
Tezzla
Tezzla 11.05.2021 um 16:23:19 Uhr
Goto Top
Du richtest auf dem ReverseProxy das LE Zertifikat für beide Domains ein.
Das kannst du ja direkt im Certbot konfigurieren.

Intern können die Server mit dem ReverseProxy sprechen, wie sie wollen, ob über http / https (selfsigned) oder was auch immer. Die Verbindung läuft ja immer über den ReverseProxy mit dem anfragenden Client und über sein Zertifikat.

Im NGINX legst du die Server im Serverblock an:

server {
        server_name domain01.de;
        location / {
                proxy_pass      http://docker01;
        }
}
server {
        server_name domain02.de;
        location / {
                proxy_pass      http://docker02;
        }
}