Mam wiadro S3, na którym znajduje się CloudFront CDN.S3/CloudFront, wyświetlaj wszystkie pliki z nagłówkiem "Cache-Control: max-age = 365000000, niezmienny"
To wiadro S3 jest "niezmienne", co oznacza, że po przesłaniu tam pliku, nigdy go nie usuwam ani nie aktualizuję. Wtedy jest bezpiecznie, że wszyscy klienci buforują pliki pochodzące z S3/CloudFront bardzo agresywnie.
Obecnie Etagi działają świetnie, a klienci najczęściej trafiają do 304 odpowiedzi. Jednak uzyskanie odpowiedzi 304 nadal wiąże się z obietnicą, której można uniknąć dzięki bardziej agresywnemu buforowaniu.
Więc chciałbym ten problem:
CloudFront CDN cache nigdy nie powinien dostać unieważnione, ponieważ S3 cache nigdy się nie zmienia. CloudFront nie musi ponownie pytać S3 o plik więcej niż jeden raz. Myślę, że udało mi się skonfigurować to za pomocą ustawień dystrybucji CloudFront.
CloudFront powinny służyć wszystkie pliki z nagłówka
Cache-Control: max-age=365000000, immutable
(immutable to nowy, częściowo wspierane wartość od 2016)
Nie rozumiem, w jaki sposób można osiągnąć pożądany rezultat. Czy powinienem sobie z tym poradzić na poziomie CloudFront lub S3? Czytałem kilka rzeczy o konfigurowaniu odpowiedniego nagłówka dla każdego pliku S3. Czy nie ma globalnego ustawienia dla wszystkich plików z niestandardowym nagłówkiem http, którego mógłbym użyć?
dzięki. Pójdę z poleceniem modyfikacji. Jeśli CloudFront czasami coś nie w porządku, to nie jest dobre, ale i tak nie jest to wielka sprawa. –
Masz całkowitą rację, że * "Pamięć podręczna CDN CloudFront nigdy nie powinna zostać unieważniona" * jest bardzo rygorystyczna. W rzeczywistości nie jest to po prostu uzasadnione oczekiwanie. Nie ma jednej monolitycznej pamięci podręcznej - jest jedna na każdej krawędzi, a każda krawędź obsługująca żądanie obiektu pobiera ją początkowo od początku. Przedmioty mogą być również eksmitowane z dowolnej granicy ze względu na brak częstego dostępu ("popularność"). To pamięć podręczna ... z definicji zmienna, ale ogólnie bardzo spójna. Zobacz także [Dlaczego Cloudfront eksmituje obiekty z pamięci podręcznej w ciągu zaledwie kilku godzin?] (Http://stackoverflow.com/a/32878535/1695906) –