Amazon S3 Redirect et Cloudfront

j'essaie de configurer 301 redirections sur S3 en utilisant des objets référencés ici http://docs.aws.amazon.com/AmazonS3/latest/dev/how-to-page-redirect.html . J'ai des problèmes et je n'arrive pas à comprendre ce que je fais de mal.

ce que j'obtiens, c'est une page blanche (0 byte file) comme si la valeur de métadonnées "site de redirection" n'était pas définie.

Qu'est-ce que je fais de mal?

aussi, est-ce que cela fonctionne sur AWS CloudFront?


Mon S3 Configuration De La Console S3 Console Setup

deux choses à noter:

j'ai cette configuration pour héberger un site statique. J'utilise ssl / https avec mon propre cert téléchargé et réglé sur la distribution cloudfront. Toutes les pages semblent fonctionner sauf la redirection des objets. J'ai essayé de configurer des règles de routage, mais ils ça ne marchait pas à Cloudfront.

j'essaie d'accéder aux redirections à la fois à travers l'url cloudfront et l'url s3 ( https://s3.amazonaws.com/ {bucket} / users / sign_in)

52
demandé sur Matt Smith 2014-03-30 07:58:14

2 réponses

pour les fonctionnalités de type site Web dans S3, telles que les redirections, les messages d'erreur html et les documents d'index, vous ne pouvez pas utiliser le point final REST ( ${bucket_name}.s3.amazonaws.com ou ${bucket_name}.s3.${region}.amazonaws.com ) puisque ces fonctionnalités ne sont fournies que par les points finaux du site web ( ${bucket_name}.s3-website.${region}.amazonaws.com ).

http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteEndpoints.html

pour rendre le comportement disponible dans Cloudfront, vous devez configurer Cloudfront pour utiliser ce paramètre, aussi bien, pas le reste un offert via autocomplete dans la console.

entrez le site web d'hébergement statique Amazon S3 endpoint pour votre seau. Cette valeur apparaît dans la console Amazon S3, sur la page propriétés sous Hébergement de site Web statique .

lorsque vous spécifiez le nom de seau dans ce format, vous pouvez utiliser Amazon S3 redirections et Amazon S3 erreur personnalisée document.

http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/DownloadDistS3AndCustomOrigins.html

notez que les endpoints web ne prennent pas en charge HTTPS, mais vous pouvez configurer Cloudfront pour récupérer depuis le seau avec HTTP même si la connexion client est HTTPS.


conseil utile: lors du dépannage et des changements de test avec CloudFront, les utilisateurs sont souvent confondus par l'apparente "latence" entre le moment où vous faites des changements et le moment où CloudFront commence à afficher le nouveau comportement. Dans le cas des pages d'erreur, CloudFront dispose d'un délai par défaut de 5 minutes qui l'empêche d'Envoyer à nouveau des requêtes pour des pages non-réussies à l'origine, et ceci est un timer séparé du ttl minimum/default/maximum défini dans le comportement de Cache. En particulier lors des tests, vous pouvez vous voulez désactiver ces minuteries et forcer un essai avec chaque demande subséquente de pages qui ont retourné des erreurs, en utilisant les étapes que j'ai fournies dans la réponse à une question au sujet de Amazon CloudFront Latency .

95
répondu Michael - sqlbot 2018-07-19 21:00:07

j'ai eu le même problème avec les redirections qui échouent et les fichiers de longueur zéro qui sont téléchargés, mais je n'utilisais pas Cloudfront.

la cause fondamentale dans mon cas était mon enregistrement CNAME DNS pointé vers le point final REST (static.righto.com.s3-us-west-2.amazonaws.com) au lieu du site web endpoint (static.d'accord.com.s3 - site web -us-west-2.amazonaws.com). La mise à jour de L'enregistrement CNAME a corrigé mes redirections.

un autre symptôme de ce le problème était que les pages manquantes affichaient une page D'erreur XML plutôt qu'une page D'erreur HTML.

ce document explique la différence entre les paramètres du site web et les autres paramètres.

6
répondu Ken Shirriff 2016-12-13 23:02:50