Mengubah setelan dan penggantian TTL

Halaman ini menjelaskan cara mengubah penggantian TTL dengan Cloud CDN. Penggantian TTL memberi Anda kontrol terperinci atas berapa lama Cloud CDN menyimpan konten Anda dalam cache sebelum memvalidasi ulang.

Setelan TTL dirangkum di dalam tabel berikut.

  TTL Default TTL Maks TTL Klien
Alasan untuk mengonfigurasi Meningkatkan rasio cache ditemukan untuk konten yang tidak sering berubah Paksa Cloud CDN untuk memvalidasi ulang konten lebih sering dari yang ditentukan oleh header origin Memaksa klien untuk lebih sering memvalidasi ulang konten terhadap Cloud CDN
Digunakan saat Salah satu hal berikut berlaku untuk respons yang sukses:
  • mode cache = FORCE_CACHE_ALL
  • mode cache = CACHE_ALL_STATIC, jenis konten dapat di-cache secara statis, dan TTL tidak ditetapkan oleh header asal (max-age, s-maxage, atau Expires)
Semua hal berikut berlaku:
  • mode cache = CACHE_ALL_STATIC
  • TTL ditetapkan oleh header origin (max-age, s-maxage, atau Expires)
  • TTL yang ditentukan dalam header origin lebih besar dari nilai TTL maks
Salah satu hal berikut benar:
  • mode cache = FORCE_CACHE_ALL, dan nilai TTL klien lebih kecil dari TTL Cloud CDN
  • mode cache = CACHE_ALL_STATIC, dan TTL klien lebih kecil daripada TTL yang ditetapkan oleh header origin (atau TTL default jika tidak ada informasi header origin)
Nilai default 3600 detik (1 jam) 86.400 detik (1 hari) 3600 detik (1 jam)
Nilai maks yang diizinkan 31.622.400 detik (1 tahun) 31.622.400 detik (1 tahun) 31.622.400 detik (1 tahun)
Notes Harus lebih kecil dari atau sama dengan TTL maksimum

--default-ttl=0
memaksa respons divalidasi ulang di asalnya
Harus lebih kecil dari atau sama dengan TTL maks

Sebelum memulai

  • Baca tentang mode cache.

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

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

    gcloud components update
    

Menetapkan TTL default

Guna meningkatkan tingkat kecocokan cache untuk konten yang tidak sering berubah, Anda dapat mengganti TTL default sehingga Cloud CDN memvalidasi ulang konten di origin lebih jarang. Perhatikan bahwa objek yang jarang diakses dapat dikeluarkan dari cache sebelum TTL yang ditentukan.

Jika mode cache adalah FORCE_CACHE_ALL, TTL default akan menimpa TTL yang ditetapkan di semua respons (termasuk respons yang memiliki TTL yang ditetapkan oleh header origin). Dalam mode ini, TTL default terlihat oleh klien karena Cloud CDN menetapkan atribut public dan max-age respons yang disalurkan ke klien.

Untuk mode CACHE_ALL_STATIC, TTL default berlaku pada konten dalam cache yang disalurkan oleh origin untuk respons yang tidak memiliki TTL valid yang ada (header max-age, s-maxage, atau Expires). Dalam mode CACHE_ALL_STATIC, TTL default tidak mengubah header Cache-Control yang disalurkan ke klien. Untuk mengubah header Cache-Control dalam mode CACHE_ALL_STATIC, Anda harus menetapkan TTL klien.

Jika Anda menetapkan mode cache untuk menggunakan header asal (USE_ORIGIN_HEADERS), nilai TTL default tidak berlaku dan tidak dapat ditetapkan karena Cloud CDN menggunakan perintah asal max-age atau s-maxage atau header Expires.

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. Di Backend configuration, pilih backend, lalu klik Edit .
  5. Pastikan Enable Cloud CDN dipilih.
  6. Pastikan mode cache adalah Cache konten statis (direkomendasikan) atau Paksa cache semua konten. Mengganti nilai TTL tidak didukung jika mode cache adalah Use origin settings based on Cache-Controls.
  7. Pada Default time to live, pilih nilai.
  8. Klik Simpan.

gcloud

Untuk layanan backend, gunakan perintah gcloud compute backend-services create atau gcloud compute backend-services update dengan flag --default-ttl.

Untuk bucket backend, gunakan perintah gcloud compute backend-buckets create atau gcloud compute backend-buckets update dengan flag --default-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --default-ttl=DEFAULT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --default-ttl=DEFAULT_TTL

Ganti DEFAULT_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

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": {
  "defaultTtl": DEFAULT_TTL
}

Ganti DEFAULT_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

Menetapkan TTL maks

TTL maksimum (maks) menentukan TTL maksimum yang diizinkan dalam Cloud CDN untuk konten yang disimpan dalam cache yang disalurkan oleh asal.

TTL respons dibatasi oleh TTL maksimum jika salah satu kondisi berikut terpenuhi:

  • Respons akan mencoba menetapkan max-age atau s-maxage lebih tinggi dari nilai TTL maksimum.
  • Respons memiliki header Expires lebih dari cdnPolicy.maxTtl detik di masa mendatang.

Setelan TTL maksimum tidak mengubah nilai max-age yang dikirim ke klien; untuk mengetahui informasi selengkapnya, baca Mengganti TTL klien maksimum. Setelan TTL maks hanya memengaruhi durasi upaya Cloud CDN dalam menyimpan konten dalam cache.

Setelan ini hanya digunakan saat mode cache adalah CACHE_ALL_STATIC. Nilai maksimum yang diizinkan adalah 31.622.400 detik (1 tahun). Perhatikan bahwa objek yang jarang diakses dapat dikeluarkan dari cache sebelum TTL yang ditentukan.

Dengan FORCE_CACHE_ALL, TTL selalu ditetapkan ke TTL default. Anda tidak dapat menetapkan TTL maksimum.

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. Di Backend configuration, pilih backend, lalu klik Edit .
  5. Pastikan Enable Cloud CDN dipilih.
  6. Pastikan mode cache adalah Cache konten statis (direkomendasikan).
  7. Di bagian Maximum time to live, pilih nilai.
  8. Klik Simpan.

gcloud

Untuk layanan backend, gunakan perintah gcloud compute backend-services create atau gcloud compute backend-services update dengan flag --max-ttl.

Untuk bucket backend, gunakan perintah gcloud compute backend-buckets create atau gcloud compute backend-buckets update dengan flag --max-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --max-ttl=MAX_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --max-ttl=MAX_TTL

Ganti MAX_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

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": {
  "maxTtl": MAX_TTL
}

Ganti MAX_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

Mengganti TTL klien

Untuk semua mode cache, Cloud CDN meneruskan header Cache-Control ke klien.

Dengan TTL klien, Anda dapat menetapkan TTL maksimum sesuai data yang dikirim ke browser atau klien, sehingga klien lebih sering memvalidasi ulang konten terhadap Cloud CDN, tanpa memerlukan validasi ulang di asalnya. Dengan cara ini, konten dapat dibatalkan dalam Cloud CDN jika perlu, dan browser dapat menemukan bahwa konten tersebut dibatalkan segera setelah TTL klien berakhir.

Dalam mode FORCE_CACHE_ALL, Cloud CDN biasanya meneruskan max-age yang sama ke klien yang digunakan secara internal untuk cache proxy. Namun, jika TTL klien ditentukan dan berupa nilai yang lebih kecil, TTL klien akan diteruskan ke klien dalam perintah max-age. Demikian pula, dalam mode CACHE_ALL_STATIC, TTL klien berfungsi sebagai clamp untuk max-age apa pun yang ditentukan oleh server asal sehingga max-age yang dikirim ke browser atau klien tidak akan lebih besar dari TTL klien yang dikonfigurasi. Jika tidak ada max-age yang ditentukan oleh tempat asal, TTL Cloud CDN dan nilai TTL klien akan digunakan sebagai max-age yang dikirim ke browser atau klien.

Jika ada dalam respons origin, header Expires akan dihapus dan diganti dengan perintah Cache-Control: max-age dengan TTL yang sesuai. Untuk respons error, jika tidak ada TTL caching negatif yang ditetapkan, header Cache-Control juga akan dihapus.

Karena TTL klien diperlakukan sebagai nilai maksimum untuk apa yang dikirim ke browser atau klien, TTL tidak dapat digunakan untuk meningkatkan nilai max-age yang akan dikirim. Jika nilai max-age yang dikirim ke browser dan klien lebih rendah dari yang Anda inginkan, Anda harus meningkatkan nilai perintah max-age dalam respons yang ditampilkan oleh asal, atau sesuaikan setelan TTL default atau cache negatif dengan tepat.

Biasanya, setelan TTL klien sekitar satu hari merupakan batas atas praktis yang baik. Setelan satu hari berarti browser melakukan check in dengan setidaknya frekuensi tersebut dan dapat mempelajari pembatalan validasi cache yang mungkin terjadi di Cloud CDN. Anda dapat menetapkan TTL klien jauh lebih tinggi (hingga satu tahun) sebagai cara untuk mengizinkan asal dan TTL yang dikonfigurasi untuk mengontrol sepenuhnya apa yang dikirim ke klien. Ini dapat berguna jika Anda tidak ingin browser melakukan validasi yang lebih sering terhadap Cloud CDN.

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. Di Backend configuration, pilih backend, lalu klik Edit .
  5. Pastikan Enable Cloud CDN dipilih.
  6. Pastikan mode cache adalah Cache konten statis (direkomendasikan) atau Paksa cache semua konten. Mengganti nilai TTL tidak didukung jika mode cache adalah Use origin settings based on Cache-Controls.
  7. Di bagian Client time to live, pilih nilai hingga 1 tahun.
  8. Klik Simpan.

gcloud

Untuk layanan backend, gunakan perintah gcloud compute backend-services create atau gcloud compute backend-services update dengan flag --client-ttl.

Untuk bucket backend, gunakan perintah gcloud compute backend-buckets create atau gcloud compute backend-buckets update dengan flag --client-ttl.

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --client-ttl=CLIENT_TTL
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --client-ttl=CLIENT_TTL

Ganti CLIENT_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

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": {
  "clientTtl": CLIENT_TTL
}

Ganti CLIENT_TTL dengan nilai hingga 31.622.400 detik (1 tahun).

Langkah selanjutnya

  • Untuk mengetahui alasan penayangan konten yang sudah tidak berlaku dan habis masa berlakunya, lihat Menayangkan konten usang.