Ubah mode cache

Halaman ini berisi petunjuk untuk mengubah mode cache dengan Cloud CDN. Mode cache memungkinkan Anda mengonfigurasi cara Cloud CDN menyimpan konten Anda ke dalam cache.

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
    

Menyetel mode cache

Cloud CDN menawarkan tiga mode cache yang menentukan cara meng-cache respons, apakah Cloud CDN mematuhi perintah cache yang dikirim oleh asal, dan cara menerapkan TTL cache.

Mode cache yang tersedia ditampilkan dalam tabel berikut:

Mode cache Perilaku
CACHE_ALL_STATIC Secara otomatis meng-cache respons yang berhasil dengan konten statis yang tidak tidak dapat disimpan dalam cache. Respons asal yang menyetel perintah caching yang valid juga akan di-cache.

Ini adalah perilaku default untuk backend yang mendukung Cloud CDN yang dibuat menggunakan Google Cloud CLI atau REST API.

USE_ORIGIN_HEADERS Memerlukan respons origin yang berhasil untuk menetapkan perintah cache yang valid dan header caching yang valid. Respons yang berhasil tanpa perintah ini akan diteruskan dari asal.
FORCE_CACHE_ALL Meng-cache respons yang berhasil tanpa syarat, menggantikan perintah cache apa pun yang ditetapkan oleh origin. Mode ini tidak sesuai jika backend menayangkan konten pribadi per pengguna, seperti respons HTML atau API dinamis.

Respons error dapat di-cache meskipun tidak ada perintah cache yang valid.

Sebelum menyetel mode cache ke FORCE_CACHE_ALL, pertimbangkan perilaku berikut:

  • Untuk URL bertanda tangan atau cookie yang ditandatangani, FORCE_CACHE_ALL akan menggantikan usia maksimum yang ditentukan melalui setelan Usia maksimum entri cache di Konsol Google Cloud atau opsi gcloud --signed-url-cache-max-age.

  • FORCE_CACHE_ALL mengubah waktu aktif (TTL) konten yang disimpan dalam cache sebelumnya. Perubahan ini dapat menyebabkan beberapa entri yang sebelumnya dianggap baru (karena memiliki TTL yang lebih lama dari header origin) dianggap tidak berlaku, dan dapat menyebabkan beberapa entri yang sebelumnya dianggap tidak berlaku dianggap baru.

  • FORCE_CACHE_ALL menggantikan perintah cache (Cache-Control dan Expires), tetapi tidak menggantikan header respons origin lainnya. Secara khusus, header Vary masih tetap diterapkan, dan dapat menyembunyikan penyimpanan cache meskipun jika ada FORCE_CACHE_ALL. Untuk informasi selengkapnya, lihat header misc.

Untuk mengonfigurasi mode cache untuk backend yang mendukung Cloud CDN:

Konsol

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

    Buka halaman 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. Pada Mode cache, pilih salah satu opsi berikut:
    • Menyimpan konten statis di cache (direkomendasikan): Konten statis adalah aset web yang tidak berubah untuk setiap pengguna. Konten statis didasarkan pada Content-Type dalam respons. Untuk informasi selengkapnya, lihat konten statis.
    • Gunakan setelan asal berdasarkan header Cache-Control: Respons cache dengan perintah cache yang valid di header respons.
    • Paksa cache semua konten: Cache semua konten berhasil yang ditayangkan oleh asal, dengan mengabaikan perintah private atau no-store.
  7. Klik Simpan.

gcloud

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

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

gcloud compute backend-services (create | update) BACKEND_SERVICE_NAME
    --cache-mode=CACHE_MODE
gcloud compute backend-buckets (create | update) BACKEND_BUCKET_NAME
    --cache-mode=CACHE_MODE

Ganti CACHE_MODE dengan salah satu dari yang berikut ini:

  • CACHE_ALL_STATIC (default): Otomatis meng-cache konten statis. Respons yang ditandai sebagai tidak dapat disimpan dalam cache (perintah private atau no-store dalam header respons Cache-Control) tidak akan di-cache. Untuk menyimpan konten dinamis ke dalam cache, konten harus memiliki header cache yang valid.

  • USE_ORIGIN_HEADERS: Mewajibkan origin untuk menetapkan header cache yang valid untuk menyimpan konten dalam cache. Respons tanpa header ini tidak di-cache di edge Google dan memerlukan perjalanan penuh ke origin pada setiap permintaan, sehingga berpotensi memengaruhi performa dan meningkatkan beban pada server origin.

  • FORCE_CACHE_ALL: Menyimpan semua konten ke dalam cache (yaitu, respons yang berhasil), mengabaikan perintah private atau no-store apa pun di header respons Cache-Control. Hal ini dapat menyebabkan konten pribadi per pengguna (dapat diidentifikasi pengguna) dalam cache. Hanya aktifkan ini pada backend yang tidak menyajikan konten pribadi atau dinamis, seperti bucket Cloud Storage. Jangan aktifkan setelan ini di backend yang menayangkan konten pribadi atau dinamis.

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": {
  "cacheMode": (CACHE_ALL_STATIC | USE_ORIGIN_HEADERS | FORCE_CACHE_ALL)

Ganti CACHE_MODE dengan salah satu dari yang berikut ini:

  • CACHE_ALL_STATIC (default): Otomatis meng-cache konten statis jika origin tidak menetapkan header cache yang valid. Respons yang ditandai sebagai tidak dapat disimpan dalam cache (perintah private atau no-store dalam header respons Cache-Control) tidak akan di-cache. Untuk menyimpan konten dinamis ke dalam cache, konten harus memiliki header caching yang valid.

  • USE_ORIGIN_HEADERS: Mewajibkan origin untuk menetapkan header cache yang valid ke cache konten. Respons tanpa header ini tidak di-cache di edge Google dan memerlukan perjalanan penuh ke origin pada setiap permintaan, sehingga berpotensi memengaruhi performa dan meningkatkan beban pada server origin.

  • FORCE_CACHE_ALL: Menyimpan semua konten ke dalam cache (yaitu, respons yang berhasil), mengabaikan perintah private atau no-store apa pun di header respons Cache-Control. Hal ini dapat menyebabkan konten pribadi per pengguna (dapat diidentifikasi pengguna) dalam cache. Anda hanya boleh mengaktifkan ini di backend yang tidak menyajikan konten pribadi atau dinamis, seperti bucket Cloud Storage.