2009-04-07 32 views
5

Umieszczę zasoby na S3 z nagłówkami expiry, które pomyślnie przechodzą do dystrybucji CloudFront. Jednak żądania po wygaśnięciu nie powodują, że CloudFront żąda świeżego pliku z serwera źródłowego.Buforowanie CloudFront - Jak zapewnić, że system CF odświeży się z serwera źródłowego S3 po wygaśnięciu?

Ponadto stwierdzam, że tokeny wersji ciągu zapytania nie wymuszają nowego zasobu i nie chcę używać pełnej wersji pliku.

Wszystko to może zależeć od mojej słabej znajomości nagłówków kontroli pamięci podręcznej, ale zaczynam się zastanawiać, czy brakuje mi czegoś krytycznego na temat tego, jak powinien działać CloudFront. Odpowiedzi CloudFront wyświetlają nagłówki, takie jak poniższe.

Cache-Control: max-age=120 
Expires: Tue, 07 Apr 2009 12:13:26 GMT 
+0

Zaczynam się nad tym zastanawiać, a twoje odkrycie, że żetony wersji żargonu próbnego nie wymuszają odświeżenia, są nieco niepokojące, myślę, że mogłem zrobić kilka poprawek URL-a, ale wolałbym tego nie robić. (Używałbym go do generowania odmian skompresowanych i wersjonowanych CSS i JS z pojedynczego adresu URL z różnymi zapytaniami). – Myster

Odpowiedz

9

Czas płynie i rzeczy się zmieniają. Jak zauważył Tim, najniższy czas cache wynosił 24 godziny, ale w kwietniu 2010 r. Amazon ogłosił, że rozpozna i zastosuje się do wskazówek dotyczących buforowania nawet do godziny.

Ogłoszenie tutaj: http://developer.amazonwebservices.com/connect/ann.jspa?annID=655

+3

I, w 2012 roku, jesteśmy jeszcze dalej: [nie ma więcej minimalnego czasu wygaśnięcia] (http: //aws.amazon.com/about-aws/whats-new/2012/03/19/amazon-cloudfront-lowers-minimum-expiration-period/) :) – Matchu

0

Jak zauważył w komentarzach przez Matchu, można teraz ustawić czas ważności w dół do zera, jeśli chcesz, co jest bardzo miłe dla dev i serwerów testowych!

http://aws.amazon.com/about-aws/whats-new/2012/03/19/amazon-cloudfront-lowers-minimum-expiration-period/

Minimalna wartość TTL może być tak krótki, jak 0 sekund. Następnie możesz ustawić wartość TTL dla każdego pliku, ustawiając nagłówek kontroli pamięci podręcznej w pliku w punkcie początkowym.

Należy również pamiętać what the Amazon docs say:

Po dacie i czasie ważności w Wygasa nagłówka przechodzi, CloudFront pobiera obiekt ponownie z serwera pochodzenia każdym razem położenie krawędzi otrzymuje wniosek o obiekcie.

Zalecamy stosowanie dyrektywy max-age Cache-Control zamiast pola nagłówka Expires w celu kontrolowania buforowania obiektów. Jeśli podasz wartości zarówno dla Cache-Control max-age, jak i Expires, CloudFront użyje tylko wartości max-age.