VHost via CNAME und dyndns

Alles, was den Apache betrifft, kann hier besprochen werden.

VHost via CNAME und dyndns

Postby Ian99 » 14. December 2023 12:16

Hallo miteinander,

ich stehe auf dem Schlauch. Ich suche mir schon einen Wolf im Netz.
Für euch sicher ein Klacks.

Ich habe eine Nextcloud-Inbstallation auf dem Heimserver.
Die Nextcloud läuft auf einer Apache 2 Maschine.
Ich nutze einen dyndns Dienst um wegen regelmäßig ändernder IP auf die Cloud von außen zugreifen zu können. Das funktioniert auch seit etlichen jahren soweit super.

Mir ist nun im Netz untergekommen, dass es angeblich funktionieren soll, dass man eine schöne eigene Domain auch über den CNAME Eintrag umleiten kann. Ich habe eine eigene Domain mit Subdomain angelegt - Beispiel: nc.muster.de und in dessen CNAME habe ich die dyndns eingetragen mit Beispiel xyz.dyndns.de
Das funktioniert auch. Wenn ich dann die nc.muster.de im Browser eingebe, dann werden allerdings auf xyz.dyndns.de weitergeleitet.

Nun zum springenden Punkt. Wie muss ich den Apache konfigurieren, dass die schöne Domain nc.muster.de beim Rumsurfen auf der Cloud im Browser erhalten bleibt ohne das der Nutzer erkennen, dass im Hintergrund über einen dyndns Dienst realisiert ist?

In der VirtualHost Datei habe ich schon den Bereich ServerName auf nc.muster.de geändert. Muss da noch mehr verändert werden? Möglicher Weise auch in der Nextcloud Konfiguration?

Oder geht das nur über einen Reverse-Proxy?

Wäre echt nett, wenn mich da jemand auf Spur bringen könnte.
Ian99
 
Posts: 2
Joined: 14. December 2023 12:04
XAMPP version: xx
Operating System: Debian

Re: VHost via CNAME und dyndns

Postby Nobbie » 14. December 2023 13:01

Ich glaube nicht, dass das via dyndns und dem CNAME xyz.dydndns.de geht, wahrscheinlich wird dadurch der HTTP Request verbogen resp. der Browser macht selbst einen Request auf xyz.dydndns.de als Hostname, d.h der ursprüngliche Hostname nc.muster.de ist überhaupt nicht mehr im HTTP Request drin und Apache weiss überhaupt nicht, dass er den VirtualHost nc.muster.de ausliefern soll.

Ich habe es deswegen selbst anders gelöst, ich habe keine Zwischendomain bei dyndns.org eingerichtet, sondern nur die Domain muster.de inkl. Subdomains bei http://www.selfhost.de gebucht, die unterstützen auch das dyndns Protokoll und stellen eine einfache API zur Verfügung, die von der Fritzbox unterstützt wird. Die Fritzbox teilt über diese API die dynamische IP an selfhost.de mit und die tragen dynamisch diese IP als A-Record ein (glaube ich zumindest). Es gibt jedenfalls keine Weiterleitung auf irgendein xyz.dyndns.de. In der Fritzbox habe ich dann auch noch das Portforwarding auf den Apache Rechner (das hast Du sicherlich auch) und dann funktioniert auch meine VirtualHost Konfiguration.

P.S.: Nochmal zum Verständnis - Dich stört ja nicht der Seiteninhalt, der von Apache geliefert wird (das ist ja der richtige Inhalt), sondern Dich stört, dass der Browser nicht nc.muster.de in der URL-Zeile anzeigt, sondern xyz.dyndns.de. Und das ist nicht das Problem von Apache, Apache kann überhaupt nicht die URL-Zeile im Browser ändern, das macht der Browser selbst, der zeigt immer das an, wohin er den Request geschickt hat. D.h. wenn da xyz.dyndns.de steht, dann kannst Du das mit VirtualHosts oder ReverseProxys nicht mehr ändern. Mit diesen Einstellungen änderst Du höchstens die Inhalte, die Apache ausliefert, aber nicht die Anzeige des Requests.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04

Re: VHost via CNAME und dyndns

Postby Ian99 » 14. December 2023 14:28

Hallo Nobbie,

zunächst vielen Dank für deine Infos. Das mit selfhost.de ist sehr interessant wird wohl mein Plan B.
Ob das wirklich nicht geht; davon bin ich noch nicht ganz überzeugt.
Ich habe nochmals gegoogled. Es ist schwer die passenden Infos zu finden.
Aber dies verweist wohl darauf, dass das funktionieren könnte:
https://help.nextcloud.com/t/nc-mit-ddns-domain-von-strato/124953/2
und
https://help.nextcloud.com/t/nextcloud-von-dyndns-auf-eigene-domain/122757/4

Sucht man mal nach CNAME Definitionen, dann müsste das eigentlich auch funktionieren wie von mir beschrieben:
"Ein CNAME-Eintrag ist ein Art Alias für die DNS-Einträge einer anderen Domain. So lässt sich zum Beispiel die Domain "www.ihre-domain.de" mit den DNS-Einträgen von "server.andere-domain.de" ansprechen, ohne dass der Besucher etwas davon merkt. Die IP-Adresse von "server.andere-domain.de" wird dabei übernommen und auf "www.ihre-domain.de" übertragen."
Quelle: https://www.variomedia.de/faq/Was-sind-CNAME-Eintraege-und-wie-funktionieren-sie/article/171


Es wird die IP des CNAME Eintrags für die eigentlich angewählte Adresse verwendet.

Der Zielserver bekommt die Info schon mit und könnte das als Info verwerten.

nslookup nc.muster.de liefert:
Name: xyz.dyndns.de
Address: die IP zuhause
Aliases: nc.muster.de

Der Alias wird mit ausgeliefert.
Ian99
 
Posts: 2
Joined: 14. December 2023 12:04
XAMPP version: xx
Operating System: Debian

Re: VHost via CNAME und dyndns

Postby Nobbie » 14. December 2023 15:58

Nein, es kann nicht gehen. Apache kann nicht die URL Anzeige im Browser ändern. Punkt. Wenn da nicht der Wert steht, denn Du sehen willst, kannst Du das auf Deinem Server nicht ändern. Da kannst Du konfigurieren wie Du willst.

Wenn überhaupt, dann muss es irgendeine Einstellung im DNS Server sein, dass dieser die IP von nc.muster.de auf die IP von xyz.dyndns.org auflöst, so dass der originale Request des Anwenders aus dem Browser direkt an Deine Fritzbox geht. Aber in dem Moment, wo in dem Browser die Adresse auf xyz.dyndns.de die Adresse wechselt (und das findet de fakto schon statt, bevor das erste Byte Deine Fritzbox und Deinen Apache erreicht), da ist es zu spät, das kannst Du mit nichts auf der Welt mehr ändern.

Dann müßtest Du bei dyndns.org anfragen, ob und wie man das vielleicht konfiguriert und ob das geht. Aber im Apachen brauchst Du nichts zu ändern, da ist es zu spät. Irgendwer hat ja im Browser eine Weiterleitung auf xyz.dyndns.de veranlasst und das ist nicht Dein Apache. Oder hast Du irgendwo einen Redirect stehen?

Ian99 wrote:Der Alias wird mit ausgeliefert.


Aber nur an den Browser, der hat ja den Lookup gemacht. Und der Browser bekommt auch den Namen xyz.dyndns.org. Und der Browser macht offensichtlich einen neuen HTTP Request daraus - und überschreibt die URL Zeile. Da kannst Du in Apache überhaupt nichts dran ändern, da ist der Lookup vorbei. Und einem HTTP Request gibt es auch keinen Alias, da wird der Hostname als Parameter im "GET" bereitgestellt (Beispiel):

GET http://xyz.dyndns.de/index.html HTTP/1.1
HOST: xyz.dyndns.de

Theoretisch könnte dort für den HOST der Wert nc.muster.de stehen, dann würde Apache den VirtualHost nc.muster.de ausliefern. Aber das ändert nichts daran, dass im Browser die URL den Wert xyz.dyndns.de anzeigt. Das kann Apache nicht ändern.

Ich könnte mit curl das Protokoll tracen, aber dazu bräuchte ich die echten Domainnamen.

P.S.: Last not least kann es natürlich sein, dass der Browser zwar den Request nicht ändert und richtig auf Deine Fritzbox zugreift, aber dass Deine Nextcloud einen Redirect auf xyz.dyndns.de veranstaltet. Das wäre auch denkbar, dann musst Du die Nextcloud mal neu installieren und dort als ServerName bei der Installation nc.muster.de angeben (wahrscheinlich hast Du stattdessen xyz.dyndns.org angegeben). Um das sicherzustellen, richte doch mal statt Nextcloud eine ganz effe HTML Seite ein mit einer einfachen index.php oder index.html und wo nicht viel drin steht. Und rufe die dann via nc.muster.de auf. Spätestens dann siehst Du, ob die URL immer noch umspringt (dann hat der Browser das gemacht auf Grund des Resolves des DNS Servers), oder ob sie richtig stehen bleibt (dann hat Nextcloud das getan). Aber Du kannst es mit VirtualHosts usw. nicht beeinflussen, damit beeinflusst Du lediglich, welche Inhalte Apache ausliefert. Apache kann die URL nicht ändern. Das geschieht immer nur bei einem Redirect, der seinerseits einen neuen HTTP Request im Browser auslöst.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04


Return to Apache

Who is online

Users browsing this forum: No registered users and 68 guests