Utilisation forcée CloudFront Pour transférer le dernier fichier HTML de S3
Fond
Je place un site statique sur S3 de CloudFront Haut. J'ai un problème avec mes fichiers HTML.
Selon
http://aws.amazon.com/cloudfro ... files
:
Amazon CloudFront Utilisez ces en-têtes d'éléments de contrôle d'encaisse pour déterminer la fréquence nécessaire pour vérifier la source de la version mise à jour de ce fichier.
Ce que j'ai encore fait
Avoir cela à l'esprit, j'ai installé des fichiers HTML dans mon S3 Bucket, Pour ajouter les titres suivants:
Avec mon premier appel à mon
, Je vois les en-têtes de réponse suivants (J'ai exclu des titres évidents (par exemple,
), Suivre le sujet:
Comme vous pouvez le voir, mon
Titre là-bas. Le problème est que si je mettez à jour ce fichier et mise à jour, je reçois du contenu mis en cache (pas le dernier fichier), Et je vois que CloudFront Sert sa version mise en cache, en regardant les titres de réponses:
Résumé / question
Compte tenu de ce qui précède, comme je peux obtenir automatiquement obtenir la dernière version HTML utilisant CloudFront?
Selon ses questions fréquemment posées, je peux le faire avec des titres Cache-Control, Mais je ne peux pas le faire fonctionner.
Suivre les réponses ci-dessous
En fin de compte, j'ai décidé de changer mon www CNAME, De sorte qu'il a pointé directement à mon panier S3. Puis ajouté nouveau CNAME intitulé «static», Indiquant sur CloudFront.
Cela signifie que HTML directement de S3, dans lequel tous les liens CSS / JS / IMG pointer vers static.mydomain.com
Je place un site statique sur S3 de CloudFront Haut. J'ai un problème avec mes fichiers HTML.
Selon
http://aws.amazon.com/cloudfro ... files
:
Amazon CloudFront Utilisez ces en-têtes d'éléments de contrôle d'encaisse pour déterminer la fréquence nécessaire pour vérifier la source de la version mise à jour de ce fichier.
Ce que j'ai encore fait
Avoir cela à l'esprit, j'ai installé des fichiers HTML dans mon S3 Bucket, Pour ajouter les titres suivants:
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Avec mon premier appel à mon
samplefile.htm
, Je vois les en-têtes de réponse suivants (J'ai exclu des titres évidents (par exemple,
Content-Type
), Suivre le sujet:
Cache-Control:no-cache, no-store, max-age=0, must-revalidate
Date:Sat, 10 Dec 2011 14:16:51 GMT
ETag:"a5890ace30a3e84d9118196c161aeec2"
Expires:Fri, 01 Jan 1990 00:00:00 GMT
Last-Modified:Sat, 10 Dec 2011 14:16:43 GMT
Server:AmazonS3
X-Cache:Miss from cloudfront
Comme vous pouvez le voir, mon
Cache-Control
Titre là-bas. Le problème est que si je mettez à jour ce fichier et mise à jour, je reçois du contenu mis en cache (pas le dernier fichier), Et je vois que CloudFront Sert sa version mise en cache, en regardant les titres de réponses:
X-Cache:Hit from cloudfront
Résumé / question
Compte tenu de ce qui précède, comme je peux obtenir automatiquement obtenir la dernière version HTML utilisant CloudFront?
Selon ses questions fréquemment posées, je peux le faire avec des titres Cache-Control, Mais je ne peux pas le faire fonctionner.
Suivre les réponses ci-dessous
En fin de compte, j'ai décidé de changer mon www CNAME, De sorte qu'il a pointé directement à mon panier S3. Puis ajouté nouveau CNAME intitulé «static», Indiquant sur CloudFront.
Cela signifie que HTML directement de S3, dans lequel tous les liens CSS / JS / IMG pointer vers static.mydomain.com
Aucun résultat connexe trouvé
Invité:
Pour répondre aux questions, connectez-vous ou registre
3 réponses
Catherine
Confirmation de:
Vous pouvez étudier si ces autres titres utilisent pour contrôler le Cashem, afin de donner le résultat que vous recherchez. - Vous pourriez avoir besoin que max-age. Vous voulez probablement Cloudfront Vérifié S3, Pour voir si le fichier a changé HTML. Si oui, Cloudfront Peut obtenir et retourner un nouveau fichier. Sinon, il peut servir le client d'un cache existant. (Sauvegarde de bande passante S3 et servir le client plus rapidement et plus localement).
Une tâche Cloudfront - Servez le contenu mis en cache, oui, mais il allume maintenant le contenu qui change parfois, mais peut être mis en cache s'il n'a pas changé.
P.s. Demande des lignes fonctionnent également avec Cloudfront (Si vous êtes configuré "Comportement" pour la source correspondante - Une autre nouvelle fonctionnalité), Cependant, certains serveurs de proxy peuvent toujours ne pas caresser aucun fichier avec des chaînes de requête.
Guide du développeur Amazon: validité
http://docs.amazonwebservices. ... .html
Babette
Confirmation de:
La meilleure approche de ce problème - Changer les noms de fichiers lors de la mise à niveau de la page - Ça va forcer Cloudfront Supprimer le nouveau contenu. Encore une fois, gardez à l'esprit que Cloudfront Habituellement utilisé pour les fichiers multimédia. (y compris des images) et style / javascript - Et pas tellement pour html. En substance, votre code HTML sera sur S3, Et vos images - sur Cloudfront - Avec des modifications apportées par vous, vous pouvez modifier le nom du fichier dans Cloudfront (par exemple, file-v1.jpg, file-v2.jpg etc.). Un autre moyen courant - Activez une chaîne de requête avec des informations de version.
Gardez également à l'esprit que Cloudfront ne sert pas comprimé avec gzip Contenu, qui peut conduire à une réponse plus lente que du serveur habituel (Bien que dans votre cas S3 n'identifie également pas les navigateurs qui soutiennent gzip).
Enfin, si vous voulez, vous pouvez utiliser l'annulation pour forcer Cloudfront Refuser votre copie existante et obtenez un nouveau sur le serveur source. Cependant, note que Cloudfront te donne seulement 1000 annulations gratuites par mois, après quoi le coût est 0,005 Dollar pour l'annulation.
Le temps minimum pendant lequel Cloudfront stockera le contenu -
http://aws.typepad.com/aws/201 ... .html
, Bien que la valeur par défaut soit installée 24 heure. Par conséquent, j'essaierais d'installer max-age Au moins sur 3600. Considérez aussi le titre s-maxage (Pour le général, c'est-à-dire le contenu traité). Amazon Recommander
http://www.mnot.net/cache_docs/
Manuel de keching.
Était
https://forums.aws.amazon.com/ ... 77954
Avec cela, fixé il y a quelques jours
Hannah
Confirmation de:
Une des choses que vous pouvez faire pour mettre à jour les objets, - Cela le rend invalide. Suivez le lien ci-dessous pour plus d'informations.
http://blog.cloudberrylab.com/ ... .html