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-Key: 666619

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

Printed on: April 20, 2024 at 07:04 o'clock

Member: StefanKittel
StefanKittel May 11, 2021 at 08:04:35 (UTC)
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
Member: Tezzla
Tezzla May 11, 2021 updated at 11:19:33 (UTC)
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
Member: Lebowski23
Lebowski23 May 11, 2021 at 14:13:09 (UTC)
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
Member: Tezzla
Tezzla May 11, 2021 at 14:23:19 (UTC)
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;
        }
}