Menayangkan konten usang

Halaman ini memberikan informasi tentang penayangan konten yang tidak berlaku dan sudah tidak berlaku dengan Cloud CDN. Menayangkan konten yang tidak relevan memungkinkan cache global Google terus menayangkan konten saat server origin Anda tidak dapat dijangkau atau menampilkan error ke Cloud CDN.

Alasan untuk melakukannya adalah sebagai berikut:

  • Anda lebih memilih untuk menayangkan konten yang sudah tidak berlaku kepada pengguna, bukan menampilkan error kepada pengguna.
  • Menayangkan konten yang sudah tidak berlaku akan menghindari latensi saat cache mendapatkan permintaan untuk konten yang baru saja habis masa berlakunya. Daripada harus menunggu validasi ulang sinkron ke backend, cache akan menayangkan konten usang yang baru saja berakhir masa berlakunya, 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 setelah waktu habis masa berlaku entri cache. Secara asinkron, Cloud CDN akan memvalidasi ulang konten dengan asal.

Cloud CDN mengaktifkannya untuk Anda dengan setelan cdnPolicy.serveWhileStale. Setelan ini menentukan berapa lama, setelah respons berakhir, Cloud CDN dapat terus menayangkan versi yang tidak berlaku. Jika tidak ditentukan 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 jika 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 yang sudah tidak berlaku ditayangkan hingga batas yang ditentukan setelah waktu berakhirnya entri cache, yang ditentukan oleh header max-age, s-maxage, atau Expires. Untuk informasi selengkapnya, lihat Waktu habis masa berlaku dan permintaan validasi.

Jika cache edge Cloud CDN tidak memiliki salinan objek yang di-cache untuk menayangkan objek yang tidak relevan, atau objek telah mencapai TTL tidak relevan maksimum, Cloud CDN akan memvalidasi ulang konten secara sinkron dengan origin. Jika origin menampilkan error pada saat itu, Cloud CDN akan menampilkan error origin.

Logging dan Agen Pengguna

Permintaan asinkron yang dibuat oleh Cloud CDN akan muncul di server origin Anda sama persis seperti permintaan validasi ulang normal yang terjadi saat tidak menayangkan konten yang sudah tidak berlaku. Pengecualian adalah bahwa keduanya diberi tag dengan header User-Agent yang berisi Cloud-CDN-Google.

Permintaan asinkron juga dicatat ke Cloud Logging secara terpisah, sehingga permintaan pengguna yang ditayangkan tidak berlaku lagi akan menghasilkan dua entri log: yang pertama untuk konten yang benar-benar ditayangkan kepada pengguna, dan yang kedua untuk permintaan validasi ulang ke origin. Seperti validasi ulang sinkron, Cloud CDN dapat mengirim permintaan bersyarat dalam beberapa situasi, atau hanya 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 yang tidak berlaku lebih singkat dengan menentukan perintah kontrol cache max-stale. Jika ditentukan, perintah ini akan mengontrol jumlah keusangan yang ditoleransi klien.

Jika konten yang di-cache lebih lama daripada nilai max-stale klien, Cloud CDN akan memvalidasi ulang konten 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 origin.

Sebelum memulai

  • Baca tentang mode cache dan konten statis.

  • Pastikan Cloud CDN diaktifkan; untuk petunjuknya, lihat Menggunakan Cloud CDN.

  • Jika perlu, update ke Google Cloud CLI versi terbaru:

    gcloud components update
    

Menayangkan konten yang tidak relevan saat memvalidasi ulang

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama Load Balancer Aplikasi eksternal Anda.
  3. Klik Edit.
  4. Untuk Konfigurasi backend, pilih backend, lalu klik Edit.
  5. Pastikan Enable Cloud CDN dipilih.
  6. Di bagian bawah jendela, klik Konfigurasi lanjutan.
  7. Untuk Opsi CDN tambahan, pilih salah satu opsi berikut untuk Tayangkan saat sudah tidak berlaku:
    • 1 menit
    • 5 menit
    • 10 menit
    • 30 menit
    • 1 hari (direkomendasikan)
    • 7 hari
  8. Klik Perbarui.
  9. Klik Update 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
}

Menonaktifkan penayangan konten yang tidak relevan

Konsol

  1. Di konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Klik nama Load Balancer Aplikasi eksternal Anda.
  3. Klik Edit.
  4. Untuk Konfigurasi backend, pilih backend, lalu klik Edit.
  5. Pastikan Enable Cloud CDN tidak dipilih.
  6. Di bagian bawah jendela, klik Konfigurasi lanjutan.
  7. Untuk Opsi CDN tambahan > Menayangkan saat sudah tidak berlaku, pilih Nonaktifkan penayangan saat sudah tidak berlaku.
  8. Klik Perbarui.
  9. Klik Update lagi.

gcloud

Untuk bucket backend, gunakan perintah gcloud compute backend-buckets create atau gcloud compute backend-buckets update dengan nilai flag --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 flag --serve-while-stale yang 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
}