Ich habe viele Subdomains auf meinem Entwicklungscomputer wie folgt eingestellt.
- test1.example.com => 192.168.0.7
- test2.example.com => 192.168.0.7
- ... (ungefähr 30 Domains wie dieses)
Ich habe viele Sites auf meinem Dev-Server und Apache kann diese basierend auf dem Domain-Namen verarbeiten.
Ich habe jedoch ein schlechtes Gefühl beim Einstellen der festen IP. Also möchte ich Aliase wie folgt verwenden:
- default.example.com => 192.168.0.7
- test1.example.com => (CNAME) default.example.com
- test2.example.com => (CNAME) default.example.com
Der Vorteil hierbei ist, dass wenn die IP des Entwicklungsservers geändert wird, ich nur eine anstelle von vielen ändern muss.
Wenn ich test1.example.com
vom Apache-Server anfordere , wird dies als test1.example.com
oder angenommen default.example.com
?
apache-2.2
cname-record
alias
Sam Kong
quelle
quelle
default.mydomain.com.
Antworten:
Dies ist im Allgemeinen eine gute Idee, da Sie darauf hinweisen, dass Sie die IP jetzt nur noch an einer Stelle ändern müssen.
Der Client sucht nach test1, zeigt auf den Standardwert und erhält dann die IP. Es würde dann eine Verbindung zu Apache herstellen und Apache mitteilen, dass es die test1-Site möchte (es teilt dem Server nicht mit, wie er den Server gefunden hat, sondern nur, wie die ursprüngliche Anforderung lautet).
quelle
Sie haben einen entscheidenden Vorteil für den CNAME-Datensatz identifiziert.
Was Apache betrifft, bleibt das Feld HTTP-Header-Host das, was auch immer in den Client eingegeben wurde, und der CNAME hat keine Auswirkung.
Ein möglicher Nachteil von CNAME besteht darin, dass für das Nachschlagen eines Datensatzes mit einem CNAME-Eintrag zwei Abfragen erforderlich sind: erstens der CNAME und zweitens der A-Datensatz. Dies ist wahrscheinlich keine große Sache, aber erwähnenswert.
Seien Sie schließlich vorsichtig mit der "Verkettung von CNAMEs", bei der ein CNAME mit einem CNAME erstellt wird. Während es nach dem RFC zulässig ist, wird davon abgeraten.
quelle
So beantworten Sie Ihre letzte Frage: Wenn Sie die
NameVirtualHost
Direktive in Apache verwenden und für jeden CNAMEed-Eintrag einen vhost eingerichtet haben, erhalten Sie eindeutige Seiten, wie von diesem vhost definiert.Allgemein gesagt Aus meiner Erfahrung würde ich empfehlen, dass Sie sich nicht auf die Standardkonfiguration für Live-Inhalte verlassen und stattdessen für jeden Namen einen vhost (mit Serveralasen, falls erforderlich) einrichten. Es gibt immer Ausnahmen, aber dies ist im Allgemeinen einfacher zu debuggen, da jeder Name, den Sie hosten, durch eine explizite Definition in der Konfiguration berücksichtigt wird.
quelle