Halaman ini memberikan informasi tentang menayangkan konten yang sudah tidak berlaku dan tidak berlaku dengan Cloud CDN. Dengan menayangkan konten yang sudah tidak berlaku, cache global Google dapat terus menyajikan konten saat server origin Anda tidak dapat dijangkau atau menampilkan error ke Cloud CDN.
Alasan untuk melakukannya adalah sebagai berikut:
- Anda memilih untuk menayangkan konten usang kepada pengguna, bukan menampilkan error kepada pengguna.
- Menayangkan konten yang tidak berlaku akan menghindari latensi saat cache mendapatkan permintaan untuk konten yang baru saja habis masa berlakunya. Daripada menunggu validasi ulang sinkron ke backend, cache menayangkan konten usang yang baru saja berakhir, sekaligus memicu validasi ulang terpisah.
Untuk mengaktifkan perilaku ini, backend Anda dapat menentukan perintah stale-while-revalidate
di header Cache-Control
respons. Cloud CDN kemudian akan menayangkan konten tersebut dari cache (jika tersedia) selama jumlah detik yang ditentukan melewati waktu habis masa berlaku entri cache. Secara asinkron, Cloud CDN akan memvalidasi ulang konten dengan konten asal.
Cloud CDN memungkinkan hal ini untuk Anda dengan setelan cdnPolicy.serveWhileStale
. Setelan ini menentukan berapa lama, setelah respons berakhir, Cloud CDN dapat terus menyalurkan versi yang tidak berlaku. Jika tidak ditentukan lain dalam respons, nilainya adalah 86400s
(1 hari).
Cloud CDN tidak mendukung perintah stale-if-error
. Perintah ini menginstruksikan cache untuk menghindari penayangan konten yang tidak berlaku kecuali validasi ulang sinkron dengan backend gagal dengan kode status error tertentu.
Nilai default, minimum, dan maksimum adalah sebagai berikut:
- Default: 86.400 detik (satu hari)
- Minimum: 0 detik (menonaktifkan fitur)
- Maksimum: 604.800 detik (satu minggu)
Konten usang ditayangkan hingga batas yang ditentukan setelah waktu habis masa berlaku
entri cache, yang ditentukan oleh header max-age
, s-maxage
, atau Expires
. Untuk mengetahui informasi selengkapnya, lihat Waktu habis masa berlaku dan permintaan
validasi.
Jika edge cache Cloud CDN tidak memiliki salinan objek yang di-cache untuk ditayangkan, atau objek telah mencapai TTL yang tidak berlaku maksimum, Cloud CDN secara sinkron memvalidasi ulang konten dengan konten asal. Jika origin menampilkan error pada saat itu, Cloud CDN akan menampilkan error origin.
Logging dan Agen Pengguna
Permintaan asinkron yang dibuat oleh Cloud CDN muncul di server origin Anda sama persis dengan permintaan validasi ulang normal yang terjadi saat tidak menayangkan konten yang sudah tidak berlaku. Pengecualiannya adalah tag tersebut diberi tag dengan header User-Agent
yang berisi Cloud-CDN-Google
.
Permintaan asinkron juga dicatat secara terpisah ke Cloud Logging, sehingga permintaan pengguna yang ditayangkan sudah tidak berlaku akan menghasilkan dua entri log: yang pertama untuk konten yang benar-benar ditayangkan kepada pengguna, dan yang kedua untuk permintaan validasi ulang ke asalnya. Seperti validasi ulang sinkron, Cloud CDN dapat mengirim permintaan kondisional dalam beberapa situasi, atau cukup meminta ulang konten tanpa syarat. Dalam kedua kasus tersebut, kode respons yang dicatat ke Cloud Logging sesuai dengan permintaan asli ke Cloud CDN; misalnya, 200 OK
untuk permintaan tanpa syarat, atau 304 Not Modified
jika respons asli pengguna bersifat kondisional.
Perintah permintaan max-stale
klien
Klien dapat meminta waktu layanan tidak berlaku yang lebih singkat dengan menentukan perintah cache-control max-stale
. Jika ditentukan, perintah ini mengontrol jumlah
ketidakberlakuan yang dapat ditoleransi klien.
Jika konten yang disimpan dalam cache lebih usang daripada nilai max-stale
klien, Cloud CDN akan memvalidasi ulang konten tersebut sebelum ditayangkan.
Klien tidak dapat meminta nilai max-stale
yang lebih besar dari nilai
yang dikonfigurasi dengan opsi konfigurasi serve-while-stale
dan
perintah cache-control stale-while-revalidate
dari asal.
Sebelum memulai
Baca tentang mode cache dan konten statis.
Pastikan Cloud CDN diaktifkan; untuk mengetahui petunjuknya, lihat Menggunakan Cloud CDN.
Jika perlu, update Google Cloud CLI ke versi terbaru:
gcloud components update
Menayangkan konten usang saat memvalidasi ulang
Konsol
- Di konsol Google Cloud, buka halaman Load balancing.
- Klik nama Load Balancer Aplikasi eksternal Anda.
- Klik Edit.
- Untuk Backend configuration, pilih backend, lalu klik Edit.
- Pastikan Enable Cloud CDN dipilih.
- Di bagian bawah jendela, klik Advanced configurations.
- Untuk Opsi CDN tambahan, pilih salah satu opsi berikut untuk Menayangkan saat tidak berlaku:
- 1 menit
- 5 menit
- 10 menit
- 30 menit
- 1 hari (direkomendasikan)
- 7 hari
- Klik Perbarui.
- Klik Perbarui lagi.
gcloud
Untuk bucket backend, gunakan perintah gcloud compute backend-buckets
create
atau
perintah gcloud compute backend-buckets
update
dengan flag --serve-while-stale
.
Untuk layanan backend, gunakan perintah gcloud compute backend-services
create
atau
perintah gcloud compute backend-services
update
dengan flag --serve-while-stale
.
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME --serve-while-stale=SECONDS
gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME --serve-while-stale=SECONDS
Contoh:
gcloud compute backend-services update my-backend-service --serve-while-stale=180s
API
Untuk bucket backend, gunakan
panggilan API
Method: backendBuckets.insert
atau
Method: backendBuckets.update
.
Untuk layanan backend, gunakan
panggilan API
Method: backendServices.insert
atau
Method: backendServices.update
.
Gunakan salah satu panggilan API berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Tambahkan cuplikan berikut ke isi permintaan JSON:
"cdnPolicy": { "serveWhileStale": SECONDS }
Nonaktifkan penayangan konten usang
Konsol
- Di konsol Google Cloud, buka halaman Load balancing.
- Klik nama Load Balancer Aplikasi eksternal Anda.
- Klik Edit.
- Untuk Backend configuration, pilih backend, lalu klik Edit.
- Pastikan Enable Cloud CDN tidak dipilih.
- Di bagian bawah jendela, klik Advanced configurations.
- Untuk Opsi CDN tambahan > Tayangkan saat tidak berlaku, pilih Nonaktifkan penayangan saat tidak berlaku.
- Klik Perbarui.
- Klik Perbarui lagi.
gcloud
Untuk bucket backend, gunakan perintah gcloud compute backend-buckets
create
atau
gcloud compute backend-buckets
update
dengan nilai tanda --serve-while-stale
yang ditetapkan ke 0
.
Untuk layanan backend, gunakan perintah gcloud compute backend-services
create
atau
perintah gcloud compute backend-services
update
dengan nilai tanda --serve-while-stale
ditetapkan ke 0
.
gcloud compute backend-services (create | update) (BACKEND_SERVICE_NAME | BACKEND_BUCKET_NAME) --serve-while-stale=0
API
Untuk bucket backend, gunakan
panggilan API
Method: backendBuckets.insert
atau
Method: backendBuckets.update
.
Untuk layanan backend, gunakan
panggilan API
Method: backendServices.insert
atau
Method: backendServices.update
.
Gunakan salah satu panggilan API berikut:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendBuckets/BACKEND_BUCKET POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/BACKEND_SERVICE
Tambahkan cuplikan berikut ke isi permintaan JSON:
"cdnPolicy": { "serveWhileStale": 0 }