it-swarm.com.de

Wie kann ich eine ganze Website in Google Cloud Storage hosten?

Gibt es eine Möglichkeit, eine gesamte Website auf Google Cloud Storage zu hosten? Das heißt, Sie ordnen einen Bucket direkt einer Top-Level-Domain zu.

Z.B. Erstellen Sie einen Bucket mit dem Namen mysite.com . Wenn der Benutzer dann mysite.com aufruft, wird der Inhalt direkt aus dem Cloud-Speicher bereitgestellt.

Ich sehe, wie man eine Unterdomäne CNAME, z. static .mysite.com , kann aber nicht herausfinden, wie die Top-Level-Domain einem Bucket zugeordnet wird.

Irgendeine Lösungsmöglichkeit?

24
rossmckegney

Ich wollte das auch tun. Es gibt derzeit jedoch keine Möglichkeit, Google Cloud Storage-Buckets direkt an einen Top-Level-Domainnamen zu binden, wie Sie festgestellt haben.

Die IP-Adressen, auf die Google Cloud Storage Webanfragen beantwortet, ändern sich häufig (um sich an die sich ändernden Bedingungen im Internet anzupassen). Daher möchte Google nicht, dass Sie eine Teilmenge davon hinzufügen (die schnell veraltet sein würde) als A-Datensätze für das Internet DNS-Server Ihrer Website. Stattdessen benötigt Google einen CNAME für einen von ihm kontrollierten DNS-Namen, sodass er die IP-Adressen für Google Cloud Storage beliebig oft ändern kann. Ein CNAME kann nur zu einer Unterdomäne und nicht zu einer Domäne der obersten Ebene hinzugefügt werden. (Dies liegt daran, dass bei einem CNAME auf einer bestimmten Ebene der DNS-Server für diese Domäne keine anderen Abfragen für diese Ebene beantwortet. Eine Top-Level-Domäne muss jedoch mindestens NS und SOA Abfragen.)

Die einzige Lösung für dieses Problem besteht jetzt darin, wie in einer anderen Antwort beschrieben, den CNAME für die www-Unterdomäne einzurichten und Ihren DNS-Hostingdienst so zu konfigurieren, dass eine Umleitung auf http-Ebene von der Top-Level-Domäne zur www-Unterdomäne durchgeführt wird. (Die meisten Anbieter unterstützen das.)

Wenn Sie kein Fan dieser Lösung sind (wie ich), gibt es genau drei Möglichkeiten. Die erste Möglichkeit besteht darin, darauf zu warten, dass Google die Möglichkeit bietet, Domains der obersten Ebene in Google Cloud Storage zu hosten. Dies erfordert jedoch zunächst ein Google-DNS-Hosting. Die Aktivierung der Top-Level-Domain-Unterstützung erfordert zusätzliche Arbeit von Google (nachdem das DNS-Hosting-Angebot erstellt wurde). Dies ist jedoch nur möglich, wenn Google beide Teile kontrolliert. Ich habe keine Ahnung, ob oder wann Google dies jemals anbieten wird. Aber man kann hoffen.

Die zweite Lösung besteht darin, zu einem anderen großen Anbieter zu wechseln. Amazon kann statische Websites von S3 in einer Top-Level-Domain hosten. Das liegt jedoch daran, dass sie auch DNS für diese Domäne hosten. Es kann andere geben. Alle großen Cloud-Anbieter werden Daten von einem Satz häufig wechselnder IP-Adressen bereitstellen. Wenn sie also auch kein DNS hosten, müssen Sie einen CNAME für eine Subdomain festlegen.

Die dritte (zumindest theoretische) Lösung besteht darin, zu einem kleineren Cloud-Anbieter zu wechseln, der einen gleichwertigen Dienst anbietet, möglicherweise unter OpenStack usw. Da die IP-Routing-Einstellungen kleiner sind, ist die Einrichtung des IP-Routings um einiges einfacher als bei den Big Playern (Amazon) , Google usw.), und Sie könnten dann einen kleinen Satz von IP-Adressen angeben, um sie als A-Einträge in Ihrer Top-Level-Domain festzulegen. Dies ist jedoch nur eine fundierte Vermutung von meiner Seite. Ich kenne momentan keine kleineren Cloud-Storage-Anbieter.

(Nun, okay, die vierte Möglichkeit besteht darin, die Idee aufzugeben, Ihre Website statisch zu hosten. Aber persönlich mag ich diese Option, wenn möglich, zumindest aus Sicherheits- und Reaktionszeitaspekten.)

18
Christian Hudon

Dies ist eine alte Frage, aber falls jemand auf dieses Posting stößt, bin ich heute auf dieselbe Frage gestoßen.

Google Domains ist mein Domain-Registrar. Angenommen, dies ist auch für Sie der Fall, und so würden Sie es einrichten:

Unter "Benutzerdefinierte Ressourcendatensätze" ...

Erstellen Sie einen CNAME-Datensatz für "www", der auf "c.storage.googleapis.com" verweist.

Unter "Synthetische Datensätze" ...

Wählen Sie "Subdomain vor". Geben Sie "mydomain.com" in die Eingabe ganz links (Subdomain) und "www.mydomain.com" in die Eingabe ganz rechts (Ziel-URL) ein.

10
bvaughn

Es ist schon ein paar Jahre her, aber für alle, die mit demselben Problem konfrontiert sind (eine "nackte Domäne" einem GCS-Bucket zuordnen), sehe ich einige Möglichkeiten, dies zu erreichen.

Verwenden Sie zum Beispiel any DNS-Provider, der "CNAME-Abflachung" (aka ALIAS oder ANAME-Einträge) unterstützt. Beispiele sind: DNSimple , NS1 , Dyn , DNS leicht gemacht und Cloudflare .

Cloudflare ist auch eine der empfohlenen Methoden für die Bereitstellung Ihres Eimers durch HTTPS und möglicherweise auch Sie sparen Geld für Ihre Ausgangsrechnung .

Eine andere Option besteht darin, dieses Projekt zum Bereitstellen Ihrer Dateien über App Engine zu verwenden. Sie erhalten kostenlos SSL, können es in Ihrer "nackten Domäne" verwenden und es können Sie Weiterleitungen, Umschreibungen und benutzerdefinierte Header konfigurieren.

2
Nuno Cruces

Eine alternative Lösung ist die Verwendung von CloudFlare (kostenlos). Sie ermöglichen die Unterstützung von CNAME in der Zone Apex/Naked-Domäne/Stammdomäne. Es funktioniert gut für meine statische Website in Google Cloud Storage. 

Dies hinterlässt immer noch die Ausgabe des WWW ....

Die Lösung, die für mich funktioniert, ist die Verwendung von CloudFlare. 1. Legen Sie für www und die leere CNAME-Domäne c.storage.googleapis.com Fest. 2. Legen Sie eine Seitenregel für example.com fest/* bis 301 bis http://www.example.com/ $ 1

Dies bedeutet jetzt, dass sich meine gesamte Website auf GCloud Storage befindet (ignorieren Sie unten den Selbstkommentar, da dies vor dem Auffinden der Seitenregeln der Fall war.)

1
Alan Fuller

Die Antwort von Christian Hudon ist sehr klar. Ich habe versucht, dasselbe zu tun, und ich habe die oben diskutierten Probleme. Was Sie auch tun können, ist folgendes:

Erstellen Sie zwei CNAME-Einträge, einen leeren (example.com) und einen weiteren WWW (www.example.com) Erstellen Sie nun zwei Bucket-Ordner: example.com und www.example.com Entscheiden Sie sich für einen hostet die Seiten und Assets und welche nur die Seiten.

Nehmen wir an, www.example.com ist die Quelle, also haben Sie Ihre Ordnerstruktur, Bilder, CSS, Javascripts, usw., und da die Site statisch ist, können Sie die vollständige Domäne zur Quelle Ihrer hinzufügen Vermögenswerte.

So etwas wie

 <link rel="stylesheet" href="http://www.example.com/css/main.css" type="text/css" />

Dann kopieren Sie die HTML-Seiten nur auf example.com. Wenn Sie example.com/contact/index.html haben, müssen Sie natürlich auch den Ordner erstellen.

Es ist ein bisschen nervig, aber nur so konnte ich es zum Laufen bringen. Dies ist nicht ideal, wenn Sie den Inhalt häufig ändern müssen, aber er funktioniert zumindest. Das hängt von Ihren Bedürfnissen ab.

0
Alfonso

Dies können Sie zum Beispiel tun, indem Sie ein Google Cloud-CDN erstellen, das auf den Bucket (example.com) verweist.

Der Load Balancer des CDN sollte über eine statische IP-Adresse verfügen, die Sie als A-Datensatz für @ verwenden können.

0
aeharding