wake-up-neo.com

Statisches Hosting unter Amazon S3 - DNS-Konfiguration

Ich arbeite an einer kleinen Web-App (alle clientseitig), die ich auf Amazon S3 hosten möchte. Ich habe mehrere Anleitungen dazu gefunden und es geschafft, mir einen Bucket (mit demselben Namen wie meine Domain) zu erstellen, ihn als Website festzulegen und Inhalte hochzuladen.

Wo ich Probleme habe und wo die gesamte Dokumentation ein bisschen vage wird, ist, wie ich mein DNS richtig konfiguriere.

Alles, was mein Registrar ( 123-reg ) vorschlagen konnte, war eine Webweiterleitung, die mir mydomain.com.s3.amazonaws.com gibt

Was muss ich konfigurieren und wo (z. B. 123-reg/Amazon) kann ich eine saubere URL erhalten?

113
Merlin Mason

Klingt so, als hätten Sie den größten Teil der Arbeit bereits erledigt. Der Klarheit halber gehe ich diese Schritte noch einmal durch, um sicherzustellen, dass Sie richtig eingerichtet sind:

  1. Erstellen Sie einen S3-Bucket mit Ihrem Domain-Namen als Bucket-Namen (Ihr Bucket-Name sollte "www.example.com" lauten, wenn Ihre Site "example.com" oder "www.example.com" lauten soll.)

  2. Laden Sie Ihre Inhalte in den S3-Bucket hoch. Wählen Sie einen einheitlichen Namen für Ihre Website-Indexdateien (normalerweise index.html). Sie können auch eine benutzerdefinierte Seite für 404 Not Found-Fehler hochladen. Nennen Sie diese 404.html. Erteilen Sie jeder Datei auf Ihrer Website Leseberechtigungen, damit die Öffentlichkeit sie anzeigen kann. Geben Sie dem Bucket keine zusätzlichen Berechtigungen, nur die darin enthaltenen Dateien.

  3. Konfigurieren Sie Ihren Bucket als Website. Mit der AWS-Konsole ( https://console.aws.Amazon.com/s3/ ) können Sie Ihren Bucket auswählen, auf Eigenschaften klicken und dann die Registerkarte "Website" auswählen. Klicken Sie auf "Aktiviert" und setzen Sie Ihr Indexdokument auf "index.html" und Ihr Fehlerdokument auf "404.html". Sie müssen auch Ihren Bucket mit Zugriffsberechtigungen einrichten, um den Zugriff über das Web zu ermöglichen ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html )

  4. Notieren Sie sich die URL "Endpoint" auf der Registerkarte "Website-Konfiguration". Hier wohnt Ihre Website. Sie können den Link in einem neuen Fenster öffnen und Ihre Website sollte so aussehen, wie sie aussehen wird. Klicken Sie sich um und stellen Sie sicher, dass alles wie erwartet funktioniert.

Sie MÜSSEN die Endpunktadresse in allen Schritten unten verwenden. Die normale Version von www.example.com.s3.amazonaws.com funktioniert nicht - Sie müssen die regionale Version ( http: //www.example.com.s3-website-us-east-1) verwenden. amazonaws.com/ )

Jetzt können wir den DNS so einrichten, dass Sie eine saubere, benutzerdefinierte URL erhalten.

Zunächst ordnen wir Ihrer Site www.example.com zu.

Mit den Tools Ihres DNS-Providers (in Ihrem Fall 123-reg) müssen Sie einen CNAME-Eintrag erstellen, um www.example.com www.example.com.s3-website-us-east-1.amazonaws.com zuzuordnen

Der CNAME ist das einzige, was Sie brauchen, wenn Sie nur www.example.com wollen. Die meisten Leute wollen auch, dass "example.com" funktioniert, also brauchen wir einen weiteren Schritt.

example.com wird häufig als nackte Domain oder als Apex-Datensatz der Domain bezeichnet. Der Grund dafür ist, dass es kein CNAME sein kann. CNAMEs funktionieren nur in Subdomains wie "www". Dies macht es schwieriger, auf s3 zu zeigen.

Die übliche Vorgehensweise besteht darin, einen Dienst zu verwenden, um Anfragen an example.com automatisch umzuleiten und auf www.example.com zu verweisen. Dadurch wird Ihr CNAME-Eintrag abgerufen und Ihre Site wird von s3 aus bedient.

Die automatische Weiterleitung ist mit normalem DNS nicht möglich, sodass Sie einen anderen Dienst verwenden müssen. Einige DNS-Anbieter bieten diesen Dienst zusammen mit ihrem DNS an (Godaddy tut dies, Amazon Route53 tut dies nicht)

Wenn Ihr DNS-Anbieter dies nicht tut, gibt es einige kostenlose Dienste. Eines, das ich verwendet habe, ist http://wwwizer.com/naked-domain-redirect - es erfordert keine Registrierung oder Zahlung.

Um diese Art von Service zu nutzen, müssen Sie einen DNS "A" -Eintrag für Ihre nackte Domain erstellen. Für den Dienst wwwizer.com müssten Sie einen A-Datensatz erstellen, um example.com auf 174.129.25.170 zu verweisen. Das ist alles!

Wenn ein Benutzer bei diesem Setup example.com in seinen Browser eingibt, geschieht Folgendes:

  1. DNS-Abfrage: example.com -> 174.129.25.170 (Dienst von wwwizer.com)
  2. HTTP-Anfrage an 174.129.25.170 für example.com
  3. 174.129.25.170 leitet example.com -> www.example.com weiter
  4. DNS-Abfrage: www.example.com -> CNAME zu www.example.com.s3-website-us-east-1.amazonaws.com
  5. DNS-Abfrage: www.example.com.s3-website-us-east-1.amazonaws.com -> verweist auf Amazon S3
  6. Die HTTP-Anforderung für www.example.com wird jetzt von Amazon S3 bereitgestellt

Genießen!

239
secretmike

Ich glaube, Sie müssen alle Dokumente in Ihrem Bucket auswählen, mit der rechten Maustaste klicken und "Öffentlich machen" auswählen. Sie müssen dies jedes Mal tun, wenn sich etwas im Eimer ändert. Ich klicke dann normalerweise mit der rechten Maustaste auf den Eimer, wähle Eigenschaften aus, wähle Berechtigungen im rechten Bereich aus und füge dann "Jeder als" Berechtigter "hinzu. Der Rest deines Artikels ist ausgezeichnet. Der Teil über die nackte Domain hat geholfen Ich löse meine Probleme. Sie können die nackte Domain auch innerhalb von S3 unter "Static Website Hosting" auf die www-Domain umleiten lassen. Nochmals vielen Dank für Ihre Hilfe.

Tim

1
Tim

Update 2019

Ab heute hat die folgende DNS-Einstellung funktioniert, damit die statische AWS S3-Website funktioniert:

DNS setting for bucket mapping

0
zennni

Auf dem Advanced DNS-Bildschirm Ihres 123-reg-Bedienfelds

  • Zunächst habe ich auf die Schaltfläche "DNS zurücksetzen" geklickt, um die Standardeinstellungen für die 123-Registrierung wiederherzustellen.

Dies gab mir folgendes;

DNS EntryType       PriorityTTLDestination/Target
*                 A                                 81.xx.xx.xx              
@               A                                 81.xx.xx.xx              
@               MX          10               xx0.123-reg.co.uk
@               MX          20               xx1.123-reg.co.uk

  • Ich habe dann diesen Eintrag hinzugefügt

www          CNAME                    www.example.com.s3-website-us-east-1.amazonaws.com

Laut Manage DNS guide pdf bezieht sich der "@ record" auf "Ihre Domain in ihrer reinsten Form ohne Subdomain", dh die nackte Domain stackoverflow.com

Es wird jedoch nicht erwähnt, was der "* -Datensatz" ist. Ich bin davon ausgegangen, dass alle Unterdomänen abgefangen werden sollen, und dachte, dass der CNAME-Datensatz möglicherweise außer Kraft gesetzt wird, aber dies scheint nicht der Fall zu sein.

0
Paul Rowland