Ich habe einen S3-Bucket, auf dem CloudFront CDN ist.S3/CloudFront, alle Dateien mit Header "Cache-Control: max-age = 365000000, unveränderbar"
Dieser S3-Bucket ist "unveränderlich", was bedeutet, dass ich, wenn ich eine Datei dort hochlade, niemals lösche oder aktualisiere. Es ist dann sicher, dass alle Clients die von S3/CloudFront stammenden Dateien sehr aggressiv zwischenspeichern.
Gegenwärtig arbeiten Etags gut und die Kunden haben meistens 304 Antworten erhalten. Aber eine 304-Antwort zu erhalten, erfordert immer noch eine Rundreise, die durch aggressiveres Caching vermieden werden könnte.
Also würde ich dieses Verhalten mag:
Cloudfront CDN-Cache sollte nie für ungültig erklärt bekommen, weil S3 Cache ändert sich nie. CloudFront muss S3 nicht mehrmals nach einer Datei fragen. Ich denke, ich habe das mit den CloudFront-Verteilungseinstellungen erfolgreich konfiguriert.
Cloudfront sollte alle Dateien mit Kopf
Cache-Control: max-age=365000000, immutable
(immutable ist ein neuer, teilweise unterstützte Wert ab 2016)
Ich verstehe nicht, dienen, wie kann ich das gewünschte Ergebnis erzielen. Soll ich das auf CloudFront- oder S3-Ebene handhaben? Ich habe ein paar Dinge über die Konfiguration der entsprechenden Header für jede S3-Datei gelesen. Gibt es keine globale Einstellung, um alle Dateien mit einem benutzerdefinierten HTTP-Header zu versehen, den ich verwenden könnte?
danke. Ich werde mit dem Befehl ändern gehen. Wenn CloudFront es manchmal für ungültig erklärt, ist es nicht gut, aber es ist auch keine große Sache. –
Sie haben recht, dass * "CloudFront CDN-Cache niemals ungültig gemacht werden sollte" * ist sehr streng. In der Tat ist es einfach keine vernünftige Erwartung. Es gibt keinen einzigen monolithischen Cache - es gibt einen an jeder Kante, und jede Kante, die eine Anfrage für ein Objekt behandelt, holt sie anfänglich vom Ursprung ab. Objekte können auch aus einer gegebenen Kante entfernt werden, wenn ein häufiger Zugriff fehlt ("Popularität"). Es ist ein Cache ... per Definition volatil, aber insgesamt sehr konsistent. Siehe auch [Warum entfernt Cloudfront Objekte aus dem Cache innerhalb von nur wenigen Stunden?] (Http://stackoverflow.com/a/32878535/1695906) –