Best Practice zum Platzieren von DNS-Einträgen und Subdomains

7

Angenommen, ich habe mydomain.com :

Ist es besser, Option A zu verwenden:

[A] mydomain.com      123.45.67.89
[A] www.mydomain.com  123.45.67.89

oder Option B:

[A]     mydomain.com      123.45.67.89
[CNAME] www.mydomain.com  mydomain.com

Welche Auswirkungen hätte eine Auswahl nach der anderen?

Die zweite Frage lautet: Angenommen , ich möchte eine Subdomain unter blog.mydomain.com haben . Und ich habe es wie folgt als A-Rekorde eingestellt:

[A] blog.mydomain.com  123.45.67.89

Und um es auch zugänglich zu machen, wenn der Benutzer www.blog.mydomain.com eingibt, füge ich auch den folgenden Datensatz ein:

[A] www.blog.mydomain.com  123.45.67.89

Die Frage ist, ist dies eine gängige Praxis? Oder gibt es dafür bessere Möglichkeiten? Was ich erreichen möchte, ist (Benutzerzugriff -> Weiterleiten an):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error

Prost!

Nachtrute
quelle

Antworten:

9

Im Allgemeinen wäre die beste Vorgehensweise zur Vereinfachung der Wartung etwa folgende:

[A]     mydomain.com            123.45.67.89
[CNAME] www.mydomain.com        mydomain.com
[CNAME] blog.mydomain.com       mydomain.com
[CNAME] www.blog.mydomain.com   mydomain.com
[A]     mail.mydomain.com       123.45.67.89
[MX]    mydomain.com            mail.mydomain.com

Auf diese Weise können Sie Ihren A-Eintrag für mydomain.com ändern, ohne Ihren E-Mail-Eintrag zu stören oder jede Subdomain manuell ändern zu müssen.

Sie müssen auch Ihren Webserver einrichten, um auf diese Namen zu antworten. Hier ist ein Beispiel dafür in Apache:

NameVirtualHost 123.45.67.89:80
<VirtualHost 123.45.67.89:80>
    DocumentRoot /var/www/html/mydomain.com
    ServerName mydomain.com
    ServerAlias www.mydomain.com
    ErrorLog logs/mydomain.com-error_log
    CustomLog logs/mydomain.com-access_log combined
</VirtualHost>

<VirtualHost 123.45.67.89:80>
    DocumentRoot /var/www/html/blog.mydomain.com
    ServerName blog.mydomain.com
    ServerAlias www.blog.mydomain.com
    ErrorLog logs/blog.mydomain.com-error_log
    CustomLog logs/blog.mydomain.com-access_log common
</VirtualHost>

Für die von Ihnen erwähnten Weiterleitungen:

Die Frage ist, ist dies eine gängige Praxis? Oder gibt es dafür bessere Möglichkeiten? Was ich erreichen möchte, ist (Benutzerzugriff -> Weiterleiten an):

mydomain.com          -> mydomain.com
www.mydomain.com      -> mydomain.com
blog.mydomain.com     -> blog.mydomain.com
www.blog.mydomain.com -> blog.mydomain.com
other.mydomain.com    -> error

Um die in der Adressleiste eines Clients angezeigte URL tatsächlich zu ändern, müsste dies auf der Serverseite mit mod_rewrite erfolgen und ist keine Funktion von DNS.

Bryan White
quelle
Ja, dies sieht genauso aus wie die neuen Einstellungen, die ich anwenden möchte (auch von @cheekaleak vorgeschlagen). Was ist mit der Wildcard? In welcher Situation wird der Platzhalter benötigt?
Nightrod
Platzhalterdatensätze werden nicht allzu häufig verwendet. Wenn Sie jedoch einen einrichten und eine Anforderung keinem der in Ihren NameVirtualHosts angegebenen Namen entspricht, wird sie vom Standarddokumentstamm bereitgestellt, den Sie in Apache konfiguriert haben.
Bryan White
3

Option B. Verwenden Sie CNAME-Datensätze, um Aliase für vorhandene A-Datensätze anzugeben. Gleiches gilt für die Blog- und www.blog-Einträge. Durch Auswahl des CNAME-Datensatzes können Sie die tatsächliche IP an einem Ort (dem A-Datensatz) ändern. Wenn Sie alle Einträge als A-Datensätze vornehmen, müssen Sie sie einzeln aktualisieren.

HostBits
quelle
Ich habe die Idee. Sinnvoll, da es einfacher zu verwalten ist.
Nightrod
2

In der ersten Frage können Sie es so oder so machen. Die einzige wirkliche Auswirkung eines CNAME ist, dass beim Nachschlagen dieses Namens in einigen Fällen eine zweite DNS-Suche den Namen abruft, auf den er zeigt (also schaue ich nach oben www.example.comund erhalte einen Zeiger auf example.comund habe um das nachzuschlagen, um tatsächlich die IP zu erhalten). Der Unterschied liegt normalerweise in der Größenordnung von Millisekunden, und manchmal wird die IP des Zeigers auch in die Antwort einbezogen, wenn der Server davon weiß, wodurch die zweite Suche vermieden wird. Es werden jedoch immer noch größere DNS-Pakete erstellt. Ich definiere sie lieber nur als ADatensätze und verwende CNAMEs für Hosts außerhalb meiner eigenen Domain.

Bei der zweiten Frage können Sie sie nach Belieben konfigurieren. Stellen Sie lediglich sicher, dass der Webserver sie beantwortet, und stellen Sie die gewünschte Umleitung auf HTTP-Ebene wie gewünscht bereit (denken Sie daran, dass DNS die Adressanforderung des Browsers nicht an eine andere URL umleitet.) .

Justin Scott
quelle