Ich versuche, eine einfache Amazon AWS S3-basierte Website einzurichten, wie hier erläutert .
Ich habe den S3-Bucket eingerichtet (simples3websitetest.com) und ihm die (hoffentlich) richtigen Berechtigungen erteilt:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::simples3websitetest.com/*"
]
}
]
}
Ich habe index.html hochgeladen und den Zugriff auf die Website eingerichtet. Der Zugriff erfolgt über http://simples3websitetest.com.s3-website-us-west-2.amazonaws.com/index.html
So weit so gut, jetzt möchte ich den Zugriff auf Amazon Route53 einrichten und hier stecke ich fest.
Ich habe eine gehostete Zone auf einer Domäne eingerichtet, die ich besitze (resourcesbox.net), und auf "Datensatz erstellen" geklickt und bin zum Schritt "Alias einrichten" gelangt. Auf den Endpunkten der S3-Website wird jedoch "Keine Ziele verfügbar" angezeigt, wenn ich Versuchen Sie, das Alias-Ziel festzulegen.
Was habe ich verpasst??
quelle
Antworten:
Der von Ihnen erstellte A-Record-Alias muss mit dem Namen des Buckets identisch sein, da für das virtuelle Hosting von Buckets in S3 erforderlich ist, dass der
Host:
vom Browser gesendete Header mit dem Bucket-Namen übereinstimmt. Es gibt nicht wirklich eine andere praktische Art und Weise, wie das virtuelle Hosting von Buckets durchgeführt werden könnte ... Der Bucket muss durch einen Mechanismus identifiziert werden, und dieser Mechanismus sind die http-Header.Um einen Alias für einen Bucket in der Domain "example.com" zu erstellen, muss der Bucket-Name auch ein Hostname sein, den Sie legal in dieser Domain deklarieren können ... der Route 53 A-Record "testbucket.example .com "kann zum Beispiel nur für einen Bucket mit dem Namen" testbucket.example.com "verwendet werden ... und für keinen anderen Bucket.
In Ihrer Frage brechen Sie diese Einschränkung ... Sie können jedoch nur einen Alias für einen Bucket mit dem Namen "simples3websitetest.com" innerhalb (und am Scheitelpunkt) der Domain "simples3websitetest.com" erstellen.
Dies ist beabsichtigt und weder eine Einschränkung der Route 53 noch der S3. Sie hindern dich nur daran, etwas zu tun, das unmöglich funktionieren kann. Webserver wissen nichts über Aliasing, CNAMEs oder andere Aktionen im DNS - sie erhalten nur den ursprünglichen Hostnamen, zu dem der Browser eine Verbindung herstellen möchte, in den vom Browser gesendeten http-Headern ... und S3 verwendet diesen Informationen zum Identifizieren des Namens des Buckets, für den die virtuelle gehostete Anforderung gilt.
Beachten Sie jedoch, dass diese Einschränkung nur gilt, wenn Sie CloudFront nicht vor Ihrem Bucket verwenden.
CloudFront bietet mehr Flexibilität, da der
Host:
Header (von CloudFront selbst) neu geschrieben werden kann, bevor die Anforderung an S3 weitergeleitet wird. Sie konfigurieren den "Ursprungshost" in Ihrer CloudFront-Distribution so,your-bucket.s3-website-xx-yyyy-n.amazonaws.com
dass xx-yyyy-n die AWS-Region von S3 ist, in der Ihr Bucket erstellt wurde. Dieser Endpunkt wird in der S3-Konsole für jeden Bucket angezeigt.quelle
alias
Datensätze, die auf S3-Buckets mit aktiviertem Website-Hosting verweisen, wodurch der DNS auf den Website-Endpunkt und nicht auf den REST-Endpunkt aufgelöst wird. Die Website-Endpunkte unterstützen SSL überhaupt nicht . Dies tun nur die REST-Endpunkte. Außerdem unterstützen alle Wildcard-Zertifikate nur ein Maximum*
und können nur in der Hostnamen-Komponente ganz links angezeigt werden, sodass dies keine echte S3-Einschränkung darstellt.https://s3-us-west-2.amazonaws.com/my-bucket.with-dots.in-us-west-2/key
. Falscher regionaler Endpunkt = Umleitungsfehler.Angenommen, Sie haben eine gehostete Zone abc.com. und Sie erstellen einen Bucket abc.com (der in der Liste der Routen-Aliase nicht aufgeführt ist) - Sie denken vielleicht, es ist der. nach dem Namen - mit dem man die Eimer nicht benennen kann
Versuchen Sie dies auch. Weil ich den Bucket zum ersten Mal mit dem richtigen Namen erstellt habe und immer noch nicht funktioniert habe. Glauben Sie mir, ich habe eine Zwangsstörung, also habe ich weder einen Punkt noch ein Komma verpasst.
Dies funktionierte für mich, als ich fast alles ausprobierte. Einige Vorschläge, die ich sehe, lauten, dass ich mich abmelden und für eine Art Cache-Speicher anmelden soll, sind nicht sicher
quelle