web-dev-qa-db-fra.com

Hébergement statique Amazon S3 avec DNS Namecheap - Comment router correctement l'url non préfixée www

J'ai lu d'autres articles pour essayer d'aller au fond de ce problème ... mais j'ai besoin de clarifications.

Je peux obtenir toutes mes demandes de domaine pour atteindre parfaitement mon compartiment Amazon S3 lorsque j'entre sur www.FOO.com/MyDirectory

Si j'entre sur FOO.com/MyDirectory sans le www, cela échouera.

Quelle est la méthode appropriée pour effectuer correctement des demandes d'URL sans la route www vers le même compartiment Amazon S3?

Tous les conseils seraient très utiles. Merci

33
jremi

Je suis finalement arrivé à la solution suivante:

J'utilise Namecheap pour le compartiment DNS et Amazon S3 avec l'hébergement statique activé ...

La solution permet à la fois d'accéder au domaine racine et au domaine www. Dans la configuration DNS avancée namecheap, j'ai les paramètres suivants:

CNAME Record    @    domain.com.s3-website-us-west-1.amazonaws.com.
CNAME Record   www   www.domain.com.s3-website-us-west-1.amazonaws.com.

Dans la configuration Amazon S3, j'ai créé deux compartiments distincts.

[S3 Bucket #1] 
Bucket name: www.domain.com
Static website hosting set to:
"Enable website hosting"

[S3 Bucket #2]
Bucket name: domain.com
Static website hosting set to: 
"Redirect all requests to another Host name" pointing to www.domain.com (Bucket #1)

Avec cette configuration, n'importe quel trafic Web entrant sur le domaine racine peut atteindre le conteneur de compartiment Amazon S3 "domain.com", puis être redirigé automatiquement via Amazon vers le compartiment S3 principal "www.domain.com" qui sert tous mes éléments statiques. contenu.

Si quelqu'un tente de se connecter directement sur le domaine www, il ira directement au conteneur Amazon S3 "www.domain.com" et n'aura pas besoin d'être redirigé via le compartiment "domain.com".

J'espère que cela aidera toute personne rencontrant des problèmes à faire correctement le routage du trafic de votre domaine racine.

39
jremi

J'ai donc utilisé la réponse de jremi mais comme mentionné ci-dessous, j'ai eu des problèmes avec la livraison des e-mails. Après un certain temps avec le support NameCheap, j'ai une solution de travail.

Configuration de NameCheap

CNAME Record          www   domain.com.s3-website-us-west-1.amazonaws.com.
URL Redirect Record   @     www.domain.com  (unmasked)

Configuration S3 (seulement besoin d'un seau)

[S3 Bucket] 
Bucket name: www.domain.com     <---- This must match your domain exactly
Static website hosting set to:
"Enable website hosting"

Politique de compartiment S3

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::www.domain.com/*"
        }
    ]
}

Cela a permis à la fois à domain.com et www.domain.com de fonctionner et mon courrier électronique NameCheap fonctionne également.

21
sirclesam

J'ai utilisé la méthode de sirclesam ci-dessus et cela m'a permis d'obtenir 95% du chemin, mais mon site ne se chargeait toujours pas tant que je ne suis pas allé changer certaines configurations dans ma console AWS S3.

Voici les étapes à suivre:

  1. accédez au tableau de bord S3
  2. cliquez sur le seau que vous souhaitez utiliser (www.domain.com)
  3. cliquez sur l'onglet de la barre de navigation "autorisations"
  4. une boîte doit apparaître avec deux colonnes et un bouton "modifier" dans le coin supérieur droit de la boîte - cliquez sur ce bouton de modification
  5. il devrait y avoir 4 cases à cocher au total - DÉCOCHEZ les DEUX en bas
  6. enregistrez puis essayez d'accéder à votre site

Cela a fonctionné pour moi. J'avais initialement suivi un guide qui indiquait seulement qu'une (la troisième) case à cocher devait être vérifiée mais cela avait pour conséquence que mon compartiment bloquait toujours l'accès, donc décocher la dernière case était ce qui a résolu le problème.

Pour plus de précisions, la première case à cocher (qui doit être NON CONTRÔLÉE) se lit comme suit: "Bloquer l'accès public aux compartiments et objets accordés par le biais de nouvelles stratégies de compartiment public" et la deuxième case à cocher (qui devrait également être NON CONTRÔLÉE) se lit comme suit: "Bloquer le public et les comptes croisés accès aux compartiments et aux objets via toutes les stratégies de compartiment public "

1
regs