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 memvalidasinya kembali.
Setelan TTL dirangkum dalam tabel berikut.
TTL Default | TTL Maksimal | TTL Klien | |
---|---|---|---|
Alasan untuk mengonfigurasi | Meningkatkan rasio hit cache untuk konten yang tidak sering berubah | Memaksa Cloud CDN memvalidasi ulang konten lebih sering daripada yang ditentukan oleh header origin | Memaksa klien untuk memvalidasi ulang konten lebih sering terhadap Cloud CDN |
Digunakan saat | Salah satu hal berikut berlaku, untuk respons yang berhasil:
|
Semua hal berikut benar:
|
Salah satu dari berikut ini benar:
|
Nilai default | 3.600 detik (1 jam) | 86.400 detik (1 hari) | 3.600 detik (1 jam) |
Nilai maksimum yang diizinkan | 31.622.400 detik (1 tahun) | 31.622.400 detik (1 tahun) | 31.622.400 detik (1 tahun) |
Catatan | Harus kurang dari atau sama dengan TTL maksimum--default-ttl=0 memaksa respons untuk divalidasi ulang di origin |
Harus kurang dari atau sama dengan TTL maksimum |
Sebelum memulai
Baca tentang mode cache.
Pastikan Cloud CDN diaktifkan; untuk petunjuknya, lihat Menggunakan Cloud CDN.
Jika perlu, update ke Google Cloud CLI versi terbaru:
gcloud components update
Menetapkan TTL default
Untuk meningkatkan rasio hit cache untuk konten yang tidak sering berubah, Anda dapat mengganti TTL default sehingga Cloud CDN lebih jarang memvalidasi ulang konten di asal. Perhatikan bahwa objek yang jarang diakses mungkin dihapus 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 dapat dilihat oleh klien, karena Cloud CDN
menetapkan atribut public
dan max-age
dari respons yang ditayangkan kepada klien.
Untuk mode CACHE_ALL_STATIC
, TTL default berlaku untuk konten dalam cache yang ditayangkan
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 ditayangkan ke klien. Untuk mengubah
header Cache-Control
dalam mode CACHE_ALL_STATIC
, Anda harus menetapkan TTL
klien.
Saat Anda menetapkan mode cache untuk menggunakan header origin (USE_ORIGIN_HEADERS
), nilai TTL default tidak berlaku dan tidak dapat ditetapkan karena Cloud CDN menggunakan perintah origin max-age
atau s-maxage
atau header Expires
.
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.
- Pastikan mode cache adalah Cache konten statis (direkomendasikan) atau Paksa cache semua konten. Penggantian nilai TTL tidak didukung jika mode cache adalah Gunakan setelan origin berdasarkan header Cache-Control.
- Di bagian Default time to live, pilih nilai.
- 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 maksimum
TTL maksimum (max) menentukan TTL maksimum yang diizinkan dalam Cloud CDN untuk konten dalam cache yang ditayangkan oleh origin.
TTL respons dibatasi oleh TTL maksimum jika salah satu hal berikut berlaku:
- Respons mencoba menetapkan
max-age
ataus-maxage
yang lebih tinggi dari nilai TTL maksimum. - Respons memiliki header
Expires
lebih daricdnPolicy.maxTtl
detik di masa mendatang.
Setelan TTL maksimum tidak mengubah nilai max-age
yang dikirim ke klien; untuk
mengetahui informasi selengkapnya, lihat Mengganti TTL klien maksimum. Setelan TTL
maksimum hanya memengaruhi berapa lama Cloud CDN mencoba menyimpan konten
di cache.
Setelan ini hanya digunakan jika mode cache adalah CACHE_ALL_STATIC
. Nilai maksimum yang diizinkan adalah 31.622.400 detik (1 tahun). Perhatikan bahwa objek yang jarang diakses mungkin dikeluarkan dari cache sebelum TTL yang ditentukan.
Dengan FORCE_CACHE_ALL
, TTL selalu ditetapkan ke TTL
default; Anda tidak dapat menetapkan TTL maksimum.
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.
- Pastikan mode cache adalah Cache konten statis (direkomendasikan).
- Di bagian Maximum time to live, pilih nilai.
- 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.
TTL klien memungkinkan Anda menetapkan TTL maksimum untuk konten yang dikirim ke browser atau klien sehingga klien memvalidasi ulang konten terhadap Cloud CDN lebih sering, tanpa memerlukan validasi ulang di asalnya. Dengan cara ini, konten dapat dibatalkan validasinya dalam Cloud CDN jika diperlukan, dan browser dapat menemukan bahwa konten tersebut dibatalkan validasinya 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 merupakan 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 klem 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 origin, nilai TTL Cloud CDN dan nilai TTL klien yang lebih kecil akan digunakan sebagai max-age
yang dikirim ke browser atau klien.
Jika header Expires
ada dalam respons origin, header tersebut akan dihapus dan diganti dengan perintah Cache-Control: max-age
dengan TTL yang sesuai.
Untuk respons error, jika tidak ada TTL penyimpanan ke cache 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 klien 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 origin, atau menyesuaikan setelan TTL default
atau caching negatif dengan tepat.
Biasanya, setelan TTL klien sekitar satu hari adalah batas atas praktek yang baik. Setelan satu hari berarti browser melakukan check-in setidaknya dengan frekuensi tersebut dan dapat mempelajari invalidasi cache yang mungkin terjadi di Cloud CDN. Anda dapat menetapkan TTL klien jauh lebih tinggi (hingga satu tahun) sebagai cara untuk mengizinkan origin dan TTL yang dikonfigurasi untuk sepenuhnya mengontrol apa yang dikirim ke klien. Hal ini dapat berguna jika Anda tidak ingin browser melakukan validasi yang lebih sering terhadap 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.
- Pastikan mode cache adalah Cache konten statis (direkomendasikan) atau Paksa cache semua konten. Penggantian nilai TTL tidak didukung jika mode cache adalah Gunakan setelan origin berdasarkan header Cache-Control.
- Di bagian Client time to live, pilih nilai hingga 1 tahun.
- 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 mempelajari alasan menayangkan konten yang tidak berlaku dan sudah tidak berlaku, lihat Menayangkan konten yang tidak berlaku.