Angenommen ich habe Domain Pizzasebastian.de und mehrere Dienste auf meinem Server (192.168.178.69) auf Port 2000 - 2010 laufen.
Kann ich das irgendwie so verknüpfen dass Ich z.b. folgendes habe:
Dienst1.pizzasebastian.de -> 192.168.178.69:2002
Dienst2.pizzasebastian.de -> 192.168.178.69:2005
(Ohne das nur stumpf weitergeleitet wird, im Browser sollte schon die Domain stehen)
Die Addresse sollte aber auch nur aus dem Netz erreichbar sein, also ich möchte kein Port dafür öffnen (oder ähnliches)
Du brauchst einen proxy der auf Port 80 (oder 443 mit SSL) hört. Der Proxy leitet dann auf die Dienste weiter. Recht einfach zu konfigurieren ist der Nginx Proxy Manager https://nginxproxymanager.com/
Dann musst du noch einen lokalen DNS Eintrag setzen: ein A Record von *.Pizzasebastian.de auf die IP Adresse. DNS kannst du in einigen Routern direkt setzen. Alternativ kannst du auch einen pihole nutzen.
Wenn du lokal mit caddy arbeiten willst musst du aber das automatische https umgehen, das funktioniert nur wenn caddy auch richtig von außen erreichbar ist. Für .local geht das nicht. Um das funktieren zu lassen schreib einfach
Nein so viele du willst, der reverse proxy (in diesem Fall nginx) kann anhand des Host-Headers an den richtigen Dienst leiten.
In deb Host Header schreiben die Browser/Clients die Host Angabe in der Url, nicht die IP des Hosts. Also da steht bei einer Anfrage an abc.bla.com der wert abc.bla.com drin und bei def.bla.com entsprechend def.bla.com drin. Auch wenn für die gleiche IP hinterlegt ist.
Edit: Das was du möchtest ist ein reverse proxy, unter dem Stichwort findest du viele Infos.
Wenn deine Dienste in Docker laufen, würde ich Traefik empfehlen. Einmal eingerichtet, musst du nur noch label an die Container Anhängen und Traefik kümmert sich um Subdomains
Ist recht easy. Einmal pro Domain certbot ausführen um ein Zertifikat zu bekommen, im Router die Domains auf den lokalen Server auflösen lassen und dann mit NGINX virtual hosts für jede Domain erstellen, die via proxy-pass auf die jeweilige IP samt Port zeigen.
Klingt vielleicht kompliziert, ist aber eigentlich super easy, wenn man weiß wie es geht.
Falls man noch nie mit NGINX gearbeitet hat, ist die Konfiguration vielleicht etwas kompliziert. Viele bevorzugen deswegen mittlerweile Caddy, aber damit hab ich keine Erfahrung.
EDIT: certbot ist hier komplett optional, aber dann hat man auch eine sichere Verbindung zum Server und keine Sicherheitswarnungen.
Man kann certbot auch mehrere Domains geben, damit er ein einziges Zertifikat für alle (Sub-)Domains generiert. Und man braucht auch kein Zertifikat für eine HTTPS-Verbindung zum Server, aber wenn man keins hat meckert der Browser berechtigterweise rum, weil dann das Risiko eines Man-in-the-middle-Angriffs besteht.