Ich arbeite an einer kleinen Webanwendung (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 etwas vage wird, ist die richtige Konfiguration meines DNS.
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 (dh 123-reg / Amazon) kann ich eine saubere URL erhalten?
dns
amazon-s3
amazon-web-services
hosting
Merlin Mason
quelle
quelle
Antworten:
Klingt so, als hätten Sie den größten Teil der Arbeit bereits erledigt. Aus Gründen der Übersichtlichkeit werde ich diese Schritte noch einmal durchgehen, um sicherzustellen, dass Sie richtig eingerichtet sind:
Erstellen Sie einen S3-Bucket mit Ihrem Domain-Namen als Bucket-Namen (Ihr Bucket-Name sollte www.example.com sein, wenn Ihre Site example.com oder www.example.com sein soll).
Laden Sie Ihre Inhalte in den s3-Bucket hoch. Wählen Sie einen konsistenten 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 dies 404.html. Geben Sie jeder Datei auf Ihrer Website Leseberechtigungen, damit die Öffentlichkeit sie anzeigen kann. Geben Sie dem Bucket keine zusätzlichen Berechtigungen, sondern nur die darin enthaltenen Dateien.
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 Ihren Bucket auch mit Zugriffsberechtigungen einrichten, um den Zugriff über das Web zu ermöglichen ( http://docs.amazonwebservices.com/AmazonS3/latest/dev/WebsiteAccessPermissionsReqd.html ).
Notieren Sie sich die URL "Endpunkt" auf der Registerkarte "Website-Konfiguration". Hier lebt Ihre Website. Sie können den Link in einem neuen Fenster öffnen und sollten Ihre Website so sehen, wie sie aussehen wird. Klicken Sie sich um und stellen Sie sicher, dass alles wie erwartet funktioniert.
Sie MÜSSEN die Endpunktadresse in allen folgenden Schritten verwenden. Das normale www.example.com.s3.amazonaws.com funktioniert nicht - Sie müssen die regionale Version verwenden ( http://www.example.com.s3-website-us-east-1.amazonaws.com/). )
Jetzt können wir das DNS so einrichten, dass Sie eine saubere, benutzerdefinierte URL erhalten.
Zunächst ordnen wir Ihrer Website www.example.com zu.
Mithilfe der Tools Ihres DNS-Anbieters (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 benötigen, wenn Sie nur www.example.com möchten. Die meisten Leute möchten 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, warum es ein Problem ist, ist, dass es kein CNAME sein kann. CNAMEs funktionieren nur in Subdomains wie "www". Dies macht es schwieriger, auf s3 zu zeigen.
Der übliche Ansatz besteht darin, einen Dienst zu verwenden, um automatisch jede Anfrage an example.com umzuleiten, die auf www.example.com verweist. Dadurch wird Ihr CNAME-Eintrag abgerufen und Ihre Site wird von s3 aus bedient.
Die automatische Umleitung ist mit einfachem altem DNS nicht möglich, sodass Sie einen anderen Dienst verwenden müssen. Einige DNS-Anbieter bieten diesen Dienst zusammen mit ihrem DNS an (Godaddy, Amazon Route53 nicht. Nicht sicher über 123-reg)
Wenn Ihr DNS-Anbieter dies nicht tut, gibt es einige kostenlose Dienste. Eine, die ich verwendet habe, ist http://wwwizer.com/naked-domain-redirect - es ist keine Registrierung oder Zahlung erforderlich.
Um diese Art von Dienst nutzen zu können, müssen Sie einen DNS-Eintrag "A" 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:
Genießen!
quelle
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 auch im Eimer etwas ändert. Normalerweise klicke ich dann mit der rechten Maustaste auf den Bucket, wähle Eigenschaften aus, wähle Berechtigungen im rechten Bereich aus, füge dann "Jeder als" Berechtigter "hinzu und erteile ihnen nur" Listen "-Berechtigungen. Der Rest Ihres Artikels ist ausgezeichnet. Der Teil über die nackte Domain hat geholfen Ich kann meine Probleme lösen. Sie können die nackte Domain auch in S3 unter "Static Website Hosting" auf die WWW-Domain umleiten lassen. Dies ist wahrscheinlich der einfachste Weg. Nochmals vielen Dank für all Ihre Hilfe.
Tim
quelle
Update 2019
Ab heute hat die folgende DNS-Einstellung für mich funktioniert, damit die statische AWS S3-Website funktioniert:
quelle
Auf dem Bildschirm "Erweitertes DNS" in Ihrem 123-reg-Kontrollfeld
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
www CNAME www.example.com.s3-website-us-east-1.amazonaws.com
Aus ihrem DNS-Leitfaden verwalten pdf geht hervor, dass sich "@ record" auf "Ihre Domain in ihrer reinsten Form ohne Subdomain" bezieht, dh auf die nackte Domain stackoverflow.com
Es wird jedoch nicht erwähnt, was der "* -Datensatz" ist. Ich nahm an, dass alle Subdomains abgefangen werden sollten, und dachte, er könnte den CNAME-Datensatz überschreiben, aber dies scheint nicht der Fall zu sein.
quelle