Halaman ini berisi penjelasan mengenai cara mengubah penggantian TTL dengan Cloud CDN. Penggantian TTL memberi Anda kontrol terperinci atas berapa lama Cloud CDN meng-cache konten Anda sebelum memvalidasinya ulang.
Setelan TTL diringkas dalam tabel berikut.
| TTL Default | TTL Maks | TTL Klien | |
|---|---|---|---|
| Alasan konfigurasi | Meningkatkan rasio cache ditemukan untuk konten yang tidak sering berubah | Memaksa Cloud CDN untuk memvalidasi ulang konten lebih sering daripada yang ditentukan oleh header server asal | Memaksa klien memvalidasi ulang konten lebih sering terhadap Cloud CDN |
| Digunakan saat | Salah satu hal berikut berlaku agar respons berhasil:
|
Semua kondisi berikut benar:
|
Salah satu kondisi berikut benar:
|
| Nilai default | 3.600 detik (1 jam) | 86.400 detik (1 jam) | 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 maks--default-ttl=0memaksa respons divalidasi ulang di server asal |
Harus kurang dari atau sama dengan TTL maks |
Sebelum memulai
Baca artikel tentang mode cache.
Pastikan Cloud CDN diaktifkan; untuk mengetahui petunjuknya, baca artikel Menggunakan Cloud CDN.
Jika perlu, update ke Google Cloud CLI versi terbaru:
gcloud components update
Menetapkan TTL default
Untuk meningkatkan rasio cache ditemukan untuk konten yang jarang berubah, Anda dapat mengganti TTL default sehingga Cloud CDN lebih jarang memvalidasi ulang konten di server asal. 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
dalam semua respons (termasuk yang memiliki TTL yang ditetapkan oleh header server asal). Dalam
mode ini, TTL default dapat dilihat oleh klien karena Cloud CDN
menetapkan atribut public dan max-age dari respons yang disajikan ke klien.
Untuk mode CACHE_ALL_STATIC, TTL default berlaku untuk konten yang di-cache yang disajikan oleh server asal jika respons tidak memiliki TTL yang valid (header max-age, s-maxage, atau Expires). Dalam mode CACHE_ALL_STATIC, TTL default
tidak mengubah header Cache-Control yang disajikan 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 server asal (USE_ORIGIN_HEADERS), nilai TTL default tidak berlaku dan tidak dapat ditetapkan karena Cloud CDN menggunakan perintah server asal 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 static content (recommended) atau Force cache all content. Penggantian nilai TTL tidak didukung jika mode cache adalah Use origin settings based on Cache-Control headers.
- Di bagian Default time to live, pilih nilai.
- Klik Save.
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 (maks) menentukan batas maksimum TTL yang diizinkan dalam Cloud CDN untuk konten yang di-cache yang disajikan oleh server asal.
TTL respons dibatasi oleh TTL maks jika salah satu kondisi berikut benar:
- Respons mencoba menetapkan
max-ageataus-maxageyang lebih tinggi daripada nilai TTL maksimum. - Respons memiliki header
Expireslebih daricdnPolicy.maxTtldetik di masa mendatang.
Setelan TTL maks tidak akan mengubah nilai max-age yang dikirim ke klien. Untuk mengetahui
informasi selengkapnya, baca artikel Mengganti TTL klien maksimum. Setelan TTL maks hanya memengaruhi durasi Cloud CDN mencoba meng-cache konten.
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 dapat dikeluarkan dari cache sebelum TTL yang ditentukan.
Dengan FORCE_CACHE_ALL, TTL akan 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 static content (recommended).
- Di bagian Maximum time to live, pilih nilai.
- Klik Save.
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 dapat Anda gunakan untuk menetapkan TTL maksimum untuk konten yang dikirim ke browser atau klien, sehingga klien akan lebih sering memvalidasi ulang konten terhadap Cloud CDN, tanpa memerlukan validasi ulang di server asal. Dengan demikian, konten dapat dibatalkan validasinya dalam Cloud CDN jika diperlukan, dan browser dapat mengetahui bahwa konten dibatalkan validasinya segera setelah masa berlaku TTL klien berakhir.
Dalam mode FORCE_CACHE_ALL, Cloud CDN biasanya akan meneruskan max-age yang sama ke klien seperti yang digunakan secara internal untuk proxy caching. Namun, jika TTL klien ditentukan dan nilainya lebih kecil, TTL klien akan diteruskan ke klien melalui perintah max-age. Demikian pula, dalam mode CACHE_ALL_STATIC, TTL klien berfungsi sebagai batas untuk max-age apa pun yang ditentukan oleh server asal, sehingga max-age yang dikirim ke browser atau klien tidak akan lebih besar daripada TTL klien yang dikonfigurasi. Jika tidak ada max-age yang ditentukan oleh server asal, nilai
yang lebih kecil antara nilai TTL Cloud CDN dan nilai TTL klien akan digunakan sebagai
max-age yang dikirim ke browser atau klien.
Jika header Expires ada dalam respons server asal, header tersebut 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 nilai yang dikirim ke browser atau klien, TTL klien tidak dapat digunakan untuk meningkatkan nilai max-age yang seharusnya dikirim. Jika nilai max-age yang dikirim ke browser dan klien
lebih rendah daripada yang Anda inginkan, Anda harus meningkatkan nilai perintah max-age dalam
respons yang ditampilkan oleh server asal, atau menyesuaikan setelan TTL default
atau caching negatif dengan benar.
Biasanya, setelan TTL klien sekitar satu hari adalah batas maksimum yang efektif. Setelan satu hari berarti browser melakukan pemeriksaan minimal dengan frekuensi tersebut dan dapat mempelajari jika terjadi pembatalan validasi cache yang mungkin terjadi di Cloud CDN. Anda dapat menetapkan TTL klien jauh lebih tinggi (hingga satu tahun) sebagai suatu cara untuk mengizinkan server asal dan TTL yang dikonfigurasi mengontrol sepenuhnya info 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 static content (recommended) atau Force cache all content. Penggantian nilai TTL tidak didukung jika mode cache adalah Use origin settings based on Cache-Control headers.
- Di bagian Client time to live, pilih nilai hingga 1 tahun.
- Klik Save.
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 berikutnya
- Untuk mempelajari alasan penyajian konten usang dan konten yang masa berlakunya telah berakhir, baca artikel Menyajikan konten usang.