Eigene Hostnames
Standardmässig erhält jede Deploio-Applikation einen generierten Hostnamen in
der deploio.app
-Domain. Falls Sie eine eigene Domain oder Hostnamen nutzen
wollen, können Sie das --hosts
-Flag von nctl
nutzen.
--hosts=HOSTS,... Host names where the application can be accessed. If empty,
the application will just be accessible on a generated
host name on the deploio.app domain.
$ nctl create app go-example --hosts=custom.host.example.com
Falls die Applikation bereits besteht, können mittels nctl update app
eigene
Host- oder Domainnames gesetzt werden:
$ nctl update app go-example --hosts=custom.host.example.com,other.custom.host.example.com
Konfiguration
Sobald sie eigene Hostnamen für Ihre Applikation einsetzen wollen, müssen 2 zusätzliche Schritte ausgeführt werden:
- Verifizierung des Domainbesitzes
- eine DNS-Auflösung der Hostnamen muss zur Deploio-Infrastruktur führen
Um dies zu erreichen, erstellt nctl
automatisch eine TXT RECORD
- und eine DNS TARGET
-Spalte in der Ausgabe des Befehls, sobald der
erste Build und das erste Release erfolgreich erstellt wurden. Sie können die
beiden Einträge auch nachträglich mit der --dns
-Option anzeigen lassen:
$ nctl get app test-app --dns
NAME TXT RECORD DNS TARGET
go-example deploio-site-verification=go-example-nine-46e4146 go-example.46e4146.deploio.app
Abhängig von der Art des verwendeten eigenen Hostnamens benötigen Sie entweder nur
den Wert der DNS TARGET
-Spalte oder aber die Werte von beiden Spalten, um die
oben erwähnten Schritte durchzuführen.
Erstellung von CNAME-Einträgen für eigene Hostnamen
Der einfachste und empfohlene Weg, Ihren eigenen Hostnamen auf die Deploio-Infrastruktur auflösbar zu machen, besteht in der Nutzung eines CNAME-Eintrages.
Der erstellte Eintrag sollte auf den Wert auflösen, welcher in der Spalte
DNS TARGET
zu sehen ist.
Um beispielsweise den Hostnamen custom.host.example.org
in obiger Applikation
go-example
zu nutzen, müssen Sie den folgenden CNAME-Eintrag bei ihrem DNS-
Provider erstellen:
custom.host.example.org CNAME go-example.46e4146.deploio.app
Nach erfolgreicher Propagierung des Eintrags (dies kann etwas Zeit benötigen) wird dieser gleichzeitig den Besitz der Domain verifizieren, sowie ebenfalls die korrekte DNS-Auflösung zur Deploio-Infrastruktur sicherstellen.
Bitte beachten Sie, dass die Erstellung eines CNAME-Eintrages nur möglich ist, falls es sich bei dem konfigurierten Hostnamen nicht auch gleichzeitig um den Namen der Domain selbst handelt (ein sogenannter DNS Apex-Eintrag).
Ein Beispiel dazu:
Sie besitzen die Domain example.org
und möchten für Ihre Deploio-Applikation
den Hostnamen www.example.org
verwenden. Hier kann die Erstellung eines CNAME-
Eintrages wie oben beschrieben durchgeführt werden. Falls Sie aber den Namen
example.org
als Hostnamen in Ihrer Applikation verwenden wollen, können Sie
keinen CNAME-Eintrag erstellen und müssen die Schritte ausführen, welche unter
Apex DNS-Einträge aufgeführt sind.
Apex DNS-Einträge
Falls ihr eingesetzer Hostname dem Domainnamen selbst entspricht (bspw.:
example.org
) und nicht einer Subdomain davon, können Sie keinen CNAME wie oben
beschrieben erstellen. CNAME-Einträge können nicht für sogenannte "Apex DNS-
Einträge" genutzt werden. In diesem Fall muss die Verifizierung der Domain und
die DNS-Auflösung auf die Deploio-Infrastruktur mittels 2 verschiedenen DNS-
Einträgen umgesetzt werden. Wie Sie dies umsetzen können, wird in den folgenden
Abschnitten erklärt.
Verifizierung via TXT-Eintrag
Bei der Nutzung von Apex DNS-Einträgen müssen sie einen TXT-Eintrag anlegen,
welcher auf den Wert auflöst, welcher in der TXT RECORD
-Spalte der nctl
Ausgabe angezeigt wird. Der Eintrag wird dabei zur
Verifizierung des Domainbesitzes genutzt. Um beispielsweise die Verifizierung
des Domainbesitzes für den Hostnamen example.org
in der oben
genannten go-example
Applikation durchzuführen, müssen Sie den folgenden TXT-
Eintrag erstellen:
example.org TXT deploio-site-verification=go-example-nine-46e4146
Deploio wird diesen Eintrag periodisch abfragen und den Wert des Eintrags mit
dem erwarteten Wert vergleichen. Sobald der Hostname verifiziert ist, kann er in
der Deploio-Applikation genutzt werden. Sie können alle verifizierten und nicht
verifizierten Hostnamen mit der Hilfe von nctl
anzeigen lassen:
$ nctl get apps
NAME HOSTS UNVERIFIED_HOSTS
go-example go-example.46e4146.test.deploio.app example.org
DNS-Auflösung des Hostnamens konfigurieren
Neben der Verifizierung des Domainbesitzes muss der gewünschte Hostname auch auf die Deploio-Infrastruktur auflösbar sein. Es gibt verschiedene Wege, dies umzusetzen. Wir erklären diese in den folgenden Abschnitten.
DNS Alias-Eintrag
Einige DNS-Anbieter bieten die Nutzung von sogenannten ALIAS-Einträgen an. Diese
verhalten sich ähnlich wie CNAME-Einträge, erscheinen aber bei DNS-Abfragen als
Einträge des Typs A. Falls Ihr DNS-Anbieter den ALIAS-Typ unterstützt, empfehlen
wir, diesen zu nutzen. Erstellen Sie dazu einfach einen DNS ALIAS-Eintrag, welcher
auf den Wert auflöst, welcher in der DNS TARGET
-Spalte der nctl
Ausgabe angezeigt wird. Bei Nutzung der oben gezeigten
go-example
Applikation sollte der entsprechende ALIAS-Eintrag wie folgt
aussehen:
example.org ALIAS go-example.46e4146.deploio.app
DNS A-Eintrag
Sollte ihr DNS-Anbieter den ALIAS-Typ nicht unterstützen, so müssen Sie DNS-
Einträge des Typs A nutzen. Um diese anzulegen, muss zuerst die IP-Adresse, auf
welche der DNS TARGET
-Wert der nctl
-Ausgabe zeigt,
aufgelöst werden.
Auf Linux- oder Mac OS-Systemen kann dies mit Hilfe des host
- (oder
eines äquivalenten) Befehls umgesetzt werden:
$ host test-app.edcd8e7.deploio.app
test-app.edcd8e7.deploio.app is an alias for deploio.296dc8b.ingressnginx.nineapis.ch.
deploio.296dc8b.ingressnginx.nineapis.ch has address 178.209.59.205
Anhand der obigen Ausgabe können Sie nun einen DNS A Eintrag mit dem folgenden Inhalt anlegen:
example.org A 178.209.59.205
Sobald der DNS-Eintrag vollständig propagiert wurde (dies kann einen Moment
dauern), können Sie auf Ihre Deploio-Applikation unter
https://<ihr-eigener-hostname>
zugreifen.