web-dev-qa-db-fra.com

Comment héberger un site entier sur Google Cloud Storage?

Est-il possible d'héberger un site entier sur Google Cloud Storage ? C'est-à-dire mapper un compartiment directement sur un domaine de premier niveau.

Par exemple. créer un compartiment appelé mysite.com , puis lorsque l'utilisateur visite mysite.com sert le contenu directement à partir du stockage en nuage?

Je vois comment CNAME un sous-domaine, par exemple static .monsite.com , mais vous ne pouvez pas comprendre comment mapper le domaine de niveau supérieur sur un compartiment.

Toute solution?

24
rossmckegney

Je voulais faire ça aussi. Mais comme vous l'avez découvert, il n'existe actuellement aucun moyen de lier directement les compartiments de Google Cloud Storage à un nom de domaine de premier niveau.

Les adresses IP auxquelles Google Cloud Storage répond aux demandes Web changent souvent (pour s'adapter à l'évolution de la situation sur Internet), de sorte que Google ne souhaite pas que vous ajoutiez un sous-ensemble de ces adresses Serveur DNS de votre site web. Au lieu de cela, Google requiert un CNAME associé à un nom DNS qu’il contrôle afin de pouvoir modifier les adresses IP de Google Cloud Storage aussi souvent que nécessaire. Et un CNAME ne peut être ajouté qu'à un sous-domaine et non à un domaine de premier niveau. (Cela est dû au fait qu’en présence d’un CNAME à un niveau donné, le serveur DNS de ce domaine ne répond à aucune autre requête de ce niveau. Mais un domaine de niveau supérieur doit également répondre au moins à NS et à SOA requêtes.)

Comme décrit dans une autre réponse, la seule solution à ce problème consiste à présent à configurer le CNAME pour le sous-domaine www et à configurer votre service d'hébergement DNS afin qu'il effectue une redirection au niveau http du domaine de premier niveau vers le sous-domaine www. (Les fournisseurs Mosty soutiendront cela.)

Si vous n'êtes pas fan de cette solution (comme moi), il y a exactement trois possibilités. La première consiste à attendre que Google offre la possibilité d’héberger des domaines de premier niveau sur Google Cloud Storage. Cela nécessite toutefois l'hébergement de Google vers DNS. Activer la prise en charge de domaine de premier niveau nécessiterait un travail supplémentaire de la part de Google (après avoir construit son offre d'hébergement DNS), mais cela n'est possible que si Google contrôle les deux parties. Je ne sais pas si ou quand Google offrira jamais cela, cependant. Mais on peut espérer.

La deuxième solution consiste à passer à un autre grand fournisseur. Amazon peut héberger des sites Web statiques à partir de S3 sur un domaine de premier niveau. Mais c'est parce qu'ils hébergent également le DNS pour ce domaine. Il peut y en avoir d'autres. Tous les grands fournisseurs de cloud serviront les données à partir d'un ensemble d'adresses IP changeant fréquemment. Ainsi, s'ils n'hébergent pas votre DNS également, ils auront besoin de vous pour définir un CNAME sur un sous-domaine.

La troisième solution (théorique, au moins) consiste à passer à un fournisseur de cloud plus petit, offrant un service équivalent, peut-être sur OpenStack, etc. Du fait de leur taille réduite, leur configuration de routage IP sera un peu plus simple que celle des gros , Google, etc.) et ils seraient alors en mesure de vous donner un petit ensemble d’adresses IP à définir comme enregistrements A sur votre domaine de premier niveau. Ceci est juste une supposition éclairée de ma part, cependant. Je ne connais pas actuellement de tels fournisseurs de stockage dans le cloud de plus petite taille.

(Bien, d'accord, la quatrième possibilité consiste à abandonner l'idée d'héberger votre site Web de manière statique. Mais personnellement, j'aime beaucoup cette option lorsque cela est possible, du moins du point de vue de la sécurité et de la réactivité.)

18
Christian Hudon

C'est une vieille question, mais au cas où quelqu'un tomberait sur cette publication, j'ai rencontré le même problème aujourd'hui.

Google Domains est mon registraire de domaine. En supposant que ce soit également le cas pour vous, voici comment vous le configurer:

Sous "Enregistrements de ressources personnalisés" ...

Créez un enregistrement CNAME pour "www" qui pointe vers "c.storage.googleapis.com".

Sous "Enregistrements synthétiques" ...

Choisissez "Sous-domaine en avant". Entrez "mydomain.com" dans l'entrée la plus à gauche (sous-domaine) et "www.mondomaine.com" dans l'entrée la plus à droite (URL de destination).

10
bvaughn

Cela fait quelques années, mais pour quiconque est confronté au même problème (mappage d'un "domaine nu" à un compartiment GCS), je vois deux façons de réaliser cela.

La première consiste à utiliser any fournisseur DNS qui prend en charge "CNAME aplatissement" (également appelé ALIAS ou ANAME records). Les exemples sont: DNSimple , NS1 , Dyn , DNS Made Easy , et Cloudflare .

Cloudflare est également un { un des moyens recommandés } de servir votre panier via HTTPS et peut également vous donner un { vous permet d'économiser de l'argent sur votre facture d'évacuation }.

Une autre option consiste à utiliser ce projet _ pour servir vos fichiers via App Engine. Vous obtenez gratuitement le protocole SSL, vous pouvez l’utiliser sur votre "domaine nu" et vous permettre de configurer des redirections, des réécritures et des en-têtes personnalisés.

2
Nuno Cruces

Une autre solution consiste à utiliser CloudFlare (gratuit), qui autorise la prise en charge de CNAME sur la zone Apex/domaine nu/domaine racine. Cela fonctionne bien pour mon site statique sur Google Cloud Storage. 

Cela laisse encore la question du www ....

La solution qui fonctionne pour moi consiste à utiliser CloudFlare . 1. Définissez www et le domaine nu CNAME sur c.storage.googleapis.com ./* à 301 à http://www.example.com/ $ 1

Cela signifie maintenant que tout mon site est sur GCloud Storage (ignorez mon auto-commentaire ci-dessous, car c'était avant que je trouve "Règles de page")

1
Alan Fuller

La réponse de Christian Hudon est très claire. J'ai essayé de faire la même chose et j'ai eu les problèmes discutés ci-dessus. Ce que vous pouvez également faire est le suivant:

Créez deux entrées CNAME, une vide (exemple.com) et une autre WWW (www.exemple.com) Créez maintenant deux dossiers de compartiment: exemple.com et www.exemple.com Choisissez lequel. va héberger les pages et les actifs et lequel seulement les pages.

Disons que www.example.com est la source et que vous avez la structure de dossiers, les images, les fichiers CSS, les fichiers javascripts, etc., et parce que le site est statique, vous pouvez ajouter le domaine complet à la source de votre les atouts.

Quelque chose comme

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

Copiez ensuite les pages html uniquement sur example.com. Évidemment, si vous avez example.com/contact/index.html, vous devez également créer le dossier.

C'est un peu agaçant, mais c'était le seul moyen de le faire fonctionner. Ce n’est pas idéal si vous devez modifier le contenu assez souvent, mais au moins cela fonctionne, tout dépend de vos besoins.

0
Alfonso

Pour ce faire, vous pouvez notamment créer un CDN Google Cloud pointant vers le compartiment (exemple.com).

L'équilibreur de charge du CDN doit avoir une adresse IP statique que vous pouvez utiliser comme enregistrement A pour @.

0
aeharding