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 opsigcloud --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
danExpires
), tetapi tidak menggantikan header respons origin lainnya. Secara khusus, headerVary
masih tetap diterapkan, dan dapat menyembunyikan penyimpanan cache meskipun jika adaFORCE_CACHE_ALL
. Untuk informasi selengkapnya, lihat header misc.
Untuk mengonfigurasi mode cache untuk backend yang mendukung Cloud CDN:
Konsol
- Di konsol Google Cloud, buka halaman Load Balancing.
- Klik nama Load Balancer Aplikasi eksternal Anda.
- Klik Edit .
- Di Backend configuration, pilih backend, lalu klik Edit .
- Pastikan Enable Cloud CDN dipilih.
- 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
atauno-store
.
- Menyimpan konten statis di cache (direkomendasikan): Konten statis adalah aset web yang tidak berubah untuk setiap pengguna. Konten statis
didasarkan pada
- 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 (perintahprivate
atauno-store
dalam header responsCache-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 perintahprivate
atauno-store
apa pun di header responsCache-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 (perintahprivate
atauno-store
dalam header responsCache-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 perintahprivate
atauno-store
apa pun di header responsCache-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.