Ich möchte dieses Verhalten auf IIS 10- und GoDaddy-DNS-Servern erreichen.
Ich habe drei Server, die drei Anwendungen verwalten. Die ersten beiden funktionieren einwandfrei, aber mit dem dritten habe ich Probleme:
- Der gesamte
www.example.com
Datenverkehrnon-www.example.com
wird an einen Server weitergeleitet. - Alles
api.example.com
geht an den nächsten. - Alles
s*.example.com
geht an einen dritten Server (nur Subdomains, die mit dem Buchstaben beginnenS
)
Wenn man bedenkt, dass ich morgen vielleicht api2.mydomain.com
usw. haben könnte.
Danke!
Antwort1
DNS-Platzhalter sind binär: Sie sind entweder alles oder nichts, Sie können nicht nur einen Teil des Labels wie Ihr zuordnen s*.example.com
. Dies ist Teil des Protokolls, daher funktioniert es nicht, egal welche Software Sie verwenden[1]
SehenRFC4592und dessen Abschnitt 2.1.1:
Ein „Platzhalterdomänenname“ wird durch seine erste Bezeichnung (d. h. die ganz links stehende oder am wenigsten bedeutende) im Binärformat definiert:
0000 0001 0010 1010 (binary) = 0x01 0x2a (hexadecimal)
Das erste Oktett ist der normale Beschriftungstyp und die normale Beschriftungslänge für eine 1 Oktett lange Beschriftung und das zweite Oktett ist die ASCII-Darstellung [RFC 20] für das Zeichen „*“.
Wenn Sie so etwas tun möchten, müssen Sie ein Platzhalterzeichen einrichten und dann alle Anforderungen auf Anwendungsebene auf Ihrem Webserver verarbeiten.
Denken Sie daran, dass Platzhalter, so attraktiv sie auch sein mögen, komplizierte Probleme verursachen können, insbesondere bei CNAME-Einträgen. Zonendateien sind normalerweise Textdateien, daher ist es einfach, ihre Erstellung zu automatisieren und eine beliebige Anzahl von Einträgen darin einzufügen, anstatt Platzhalter zu verwenden.
[1]: außer natürlich mit einem hochspezifischen Server, an den Sie ein spezielles Backend anschließen könnten, das auf das Etikett in der von Ihnen benötigten Weise reagiert.