Wir hosten viele Webanwendungen für unsere Kunden. Da es offensichtlich ist, dass sie ihre eigenen Domänen verwenden möchten, um auf diese Anwendungen zu verweisen, möchten sie normalerweise, dass jeder Benutzer entweder seine Webanwendung eingibt http://www.customer1.example
oder http://customer1.example
zu dieser wechselt.
Die Situation, mit der wir konfrontiert sind, besteht darin, dass wir die Flexibilität haben müssen, IP-Adressen in naher Zukunft zu ändern. Und wir möchten uns nicht darauf verlassen, dass der Kunde die Änderung des A-Datensatzes für seine Domains vornimmt. Wir dachten also, dass die Verwendung von CNAME
Datensätzen funktionieren wird, aber wie wir herausfinden, CNAME
funktionieren Datensätze für die Stammdomäne nicht.
Grundsätzlich:
customer1.example IN CNAME customer1.mycompanydomain.example //this is invalid as the RFC
www.customer1.example IN CNAME customer1.mycompanydomain.example //this is valid and will work
Wir möchten in der Lage sein, die IP-Adresse customer1.mycompanydomain.example
oder den A
Datensatz zu ändern, und unsere Kunden werden diesem Datensatz folgen, über den wir die Kontrolle haben.
In unserem DNS sieht es so aus:
customer1.mycompanydomain.example IN A 192.0.2.1
Irgendwelche Ideen?
quelle
Antworten:
Der Grund, warum diese Frage immer noch häufig auftaucht, ist, dass, wie Sie bereits erwähnt haben, irgendwo jemand, der als wichtig angesehen wird, geschrieben hat, dass die RFC-Domänennamen ohne Subdomain vor ihnen nicht gültig sind. Wenn Sie den RFC jedoch sorgfältig lesen, werden Sie feststellen, dass dies nicht genau das ist, was darin steht. In der Tat heißt es in RFC 1912 :
Einige DNS-Hosts bieten eine Möglichkeit, mithilfe eines benutzerdefinierten Datensatztyps CNAME-ähnliche Funktionen an der Zonenspitze (der Stammdomänenebene für den nackten Domänennamen) abzurufen. Solche Aufzeichnungen umfassen zum Beispiel:
Das Setup ist für jeden Anbieter ähnlich: Zeigen Sie mit dem ALIAS- oder ANAME-Eintrag für Ihre Apex-Domain auf example.domain.com, genau wie bei einem CNAME-Datensatz. Abhängig vom DNS-Anbieter identifiziert ein leerer oder @ Name-Wert den Zonenscheitelpunkt.
ALIAS oder ANAME oder @ example.domain.com.
Wenn Ihr DNS-Anbieter einen solchen Datensatztyp nicht unterstützt und Sie nicht zu einem solchen wechseln können, müssen Sie die Subdomain-Umleitung verwenden, die je nach Protokoll oder Serversoftware nicht so schwierig ist .
Ich bin mit der Aussage, dass sie nur von "Amateuradministratoren" oder solchen Ideen gemacht wird, überhaupt nicht einverstanden. Es ist ein einfaches "Was müssen der Name und sein Service tun?" handeln und dann Ihre DNS-Konfiguration anpassen, um diese Wünsche zu erfüllen; Wenn Ihre Hauptdienste Web und E-Mail sind, sehe ich keinen GÜLTIGEN Grund, warum das problemlose Löschen der CNAMEs problematisch wäre. Wer würde @ subdomain.domain.org gegenüber @ domain.org bevorzugen? Wer braucht "www", wenn Sie bereits mit dem Protokoll selbst eingestellt sind? Es ist unlogisch anzunehmen, dass die Verwendung eines Root-Domainnamens ungültig wäre.
quelle
Das CNAME eines Stammdatensatzes ist technisch nicht gegen RFC gerichtet, hat jedoch Einschränkungen, was bedeutet, dass dies eine Vorgehensweise ist, die nicht empfohlen wird.
Normalerweise enthält Ihr Stammdatensatz mehrere Einträge. Sagen wir 3 für Ihre Nameserver und dann einen für eine IP-Adresse.
Pro RFC:
Und gemäß IETF-Dokument "Häufige DNS-Betriebs- und Konfigurationsfehler":
Verweise:
quelle
NS
undSOA
Aufzeichnungen und daher nicht haben könnenCNAME
Aufzeichnungen.Ich weiß nicht, wie sie damit durchkommen oder welche negativen Nebenwirkungen sie haben können, aber ich verwende Hover.com, um einige meiner Domains zu hosten, und habe dort kürzlich den Scheitelpunkt meiner Domain als CNAME eingerichtet. Ihr DNS-Bearbeitungstool hat sich überhaupt nicht beschwert, und meine Domain wird glücklich über den zugewiesenen CNAME aufgelöst.
Folgendes zeigt mir Dig für diese Domain (tatsächliche Domain, die als mydomain.com verschleiert ist):
quelle
Mein Unternehmen macht dasselbe für eine Reihe von Kunden, bei denen wir eine Website für sie hosten, obwohl es in unserem Fall eher xyz.company.com als www.company.com ist. Wir veranlassen sie, den A-Eintrag auf xyz.company.com so einzustellen, dass er auf eine IP-Adresse verweist, die wir ihnen zuweisen.
Ich glaube nicht, dass es eine perfekte Lösung gibt, wie Sie mit einer Änderung der IP-Adresse umgehen können. Einige Ideen sind:
Verwenden Sie einen NAT- oder IP-Load-Balancer und geben Sie Ihren Kunden eine dazugehörige IP-Adresse. Wenn sich die IP-Adresse des Webservers ändern muss, können Sie das NAT oder den Load Balancer aktualisieren.
Bieten Sie auch einen DNS-Hosting-Service an und veranlassen Sie Ihre Kunden, ihre Domain bei Ihnen zu hosten, damit Sie in der Lage sind, die A-Einträge zu aktualisieren.
Lassen Sie Ihre Kunden ihren A-Eintrag auf einen Hauptwebserver einstellen und verwenden Sie eine HTTP-Umleitung für die Webanforderungen jedes Kunden.
quelle
Sipwiz ist korrekt. Der einzige Weg, dies richtig zu machen, ist der HTTP- und DNS-Hybridansatz. Mein Registrar ist ein Wiederverkäufer von Tucows und bietet die Weiterleitung von Root-Domains als kostenlosen Mehrwertdienst an.
Wenn Ihre Domain blah.com ist, werden Sie gefragt, wohin die Domain weitergeleitet werden soll, und Sie geben www.blah.com ein. Sie weisen den A-Eintrag ihrem Apache-Server zu und fügen blah.com automatisch als DNS-vhost hinzu. Der vhost antwortet mit einem HTTP 302-Fehler, der sie zur richtigen URL umleitet. Es ist einfach zu skripten / einzurichten und kann von Low-End-Geräten verarbeitet werden, da sonst Hardware verschrottet wird.
Führen Sie den folgenden Befehl für ein Beispiel aus: curl -v eclecticengineers.com
quelle
Sie müssen einen Punkt am Ende der externen Domain einfügen, damit Sie nicht customer1.mycompanydomain.com.localdomain meinen.
Also einfach ändern:
Zu
quelle
customer1.com
sind ... wird jedoch so interpretiert, dass CNAMe für eine Unterdomäne angegeben wirdcustomer1.com.customer1.com
. Wenn ich dem ersten Element einen Punkt hinzufüge, wird der Datensatz korrekt interpretiert, funktioniert aber nicht mehr. Ich sehe hier keine Lösung.Ich sehe, dass readytocloud.com auf Apache 2.2 gehostet wird.
Es gibt eine viel einfachere und effizientere Möglichkeit, die Nicht-WWW-Site auf die WWW-Site in Apache umzuleiten.
Fügen Sie den Apache-Konfigurationen die folgenden Umschreiberegeln hinzu (entweder innerhalb des virtuellen Hosts oder außerhalb. Es spielt keine Rolle):
Oder die folgenden Umschreiberegeln, wenn Sie eine 1-zu-1-Zuordnung von URLs von der Nicht-WWW-Site zur WWW-Site wünschen:
Beachten Sie, dass das Modul mod_rewrite geladen werden muss, damit dies funktioniert. Glücklicherweise läuft readytocloud.com auf einer CentOS-Box, die standardmäßig mod_rewrite lädt.
Wir haben einen Client-Server, auf dem Apache 2.2 mit knapp 3.000 Domänen und fast 4.000 Weiterleitungen ausgeführt wird. Die Auslastung des Servers liegt jedoch zwischen 0,10 und 0,20.
quelle
Vielen Dank an sipwiz und MrEvil. Wir haben ein PHP-Skript entwickelt, das die vom Benutzer eingegebene URL analysiert und
www
oben einfügt. (Wenn der Kunde beispielsweise kiragiannis.com betritt , wird er zu www.kiragiannis.com weitergeleitet. ) Unsere Kunden verweisen also auf ihre Wurzel (z. B.customer1.com
umA
aufzuzeichnen, wo sich unser Web-Redirector befindet) und dannwww
CNAME
auf dieA
von uns verwaltete tatsächliche Aufzeichnung.Unter dem Code für den Fall, dass Sie für zukünftige uns interessiert sind.
quelle
http://
zu entfernen, noch/
($urlPagePath
wird immer leer sein). Cf httpd.apache.org/docs/2.4/expr.html . Aufgrund der Art und Weise, wie der Code versucht, die Subdomain loszuwerden, funktioniert er auch nicht für Dinge, beiwww.example.co.uk
denenco.uk
als Ganzes betrachtet werden muss. Es behandelt auch kein HTTPS. Und schließlich ist die Verwendung von PHP nur eine HTTP-Umleitung, bei der jeder Webserver dies in der Konfiguration tun kann, überkompliziert. Kurz gesagt, dies sollte sicherlich nicht die validierte Antwort auf diese Frage sein.