Saat node CDN mengambil resource dari origin server, origin server mengembalikan kode status respons. Anda dapat mengonfigurasi durasi cache untuk kode status tersebut di Alibaba Cloud CDN . Saat klien melakukan permintaan ulang terhadap resource yang sama, CDN langsung mengembalikan kode status tersebut tanpa memicu pengambilan asal (origin fetch), sehingga mengurangi beban pada origin server. Setelah durasi cache yang dikonfigurasi berakhir, origin fetch akan dipicu kembali.
Skenario
TTL kode status terutama berlaku untuk skenario di mana origin server mengembalikan kode status abnormal. TTL ini menentukan aksi caching yang dilakukan oleh node CDN terhadap kode status tersebut.
Dalam kondisi normal, ketika node CDN berhasil mengambil resource yang diminta dari origin server—yaitu saat origin server mengembalikan kode status 2xx—resource tersebut di-cache berdasarkan Konfigurasikan masa kedaluwarsa cache CDN. Jika origin server tidak dapat merespons dengan cepat terhadap semua kode status (misalnya, kode status non-2xx) dan Anda tidak ingin semua permintaan ditangani oleh origin server, Anda dapat mengonfigurasi TTL kode status agar node CDN langsung mengembalikan kode status tersebut, sehingga mengurangi beban pada origin server.
Skenario khas
File A telah dihapus dari origin server, tetapi klien terus-menerus memintanya. Node CDN tidak menyimpan cache file A, sehingga semua permintaan untuk file A diteruskan ke origin server, yang kemudian mengembalikan kode status 4xx. Hal ini secara signifikan meningkatkan beban pada origin server. Jika caching untuk kode status 4xx dikonfigurasi pada node CDN, node CDN akan menyimpan cache kode status 4xx setelah origin fetch pertama untuk file A. Selama durasi cache yang dikonfigurasi, ketika klien meminta file A lagi, node CDN langsung mengembalikan kode status 4xx tanpa melakukan origin fetch.
Aturan cache untuk kode status abnormal
Untuk kode status 204, 301, 305, 404, 405, 414, 424, 429, 500, 501, 502, 503, dan 504, aturan cache-nya adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, CDN tidak menyimpan cache respons tersebut.Jika origin server tidak mengembalikan header respons Set-Cookie, respons di-cache berdasarkan TTL kode status yang dikonfigurasi di konsol CDN . Jika terdapat beberapa aturan yang dikonfigurasi, lihat Prioritas beberapa aturan untuk mengetahui cara menentukan aturan yang berlaku.
Jika origin server tidak mengembalikan header respons Set-Cookie dan tidak ada TTL kode status yang dikonfigurasi di konsol CDN , respons di-cache berdasarkan header respons Pragma, Cache-Control, atau Expires yang ditetapkan oleh origin server.
Jika origin server tidak mengembalikan header respons Set-Cookie, Pragma, Cache-Control, atau Expires dan tidak ada TTL kode status yang dikonfigurasi di konsol CDN , respons di-cache selama 1 detik secara default.
Untuk kode status 302, 307, dan 403, aturan cache-nya adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, CDN tidak menyimpan cache respons tersebut.Jika origin server tidak mengembalikan header respons Set-Cookie, respons di-cache berdasarkan TTL kode status yang dikonfigurasi di konsol CDN . Jika terdapat beberapa aturan yang dikonfigurasi, lihat Prioritas beberapa aturan untuk mengetahui cara menentukan aturan yang berlaku.
Jika origin server tidak mengembalikan header respons Set-Cookie dan tidak ada TTL kode status yang dikonfigurasi di konsol CDN , respons di-cache berdasarkan header respons Pragma, Cache-Control, atau Expires yang ditetapkan oleh origin server.
Jika origin server tidak mengembalikan header respons Set-Cookie, Pragma, Cache-Control, atau Expires dan tidak ada TTL kode status yang dikonfigurasi di konsol CDN , respons tidak di-cache.
Untuk kode status 304, CDN tidak menyimpan cache respons tersebut, dan durasi cache tidak dapat dikonfigurasi dalam bentuk apa pun.
Untuk kode status abnormal lainnya, seperti kode status 400, aturan cache-nya adalah sebagai berikut:
Jika origin server mengembalikan header respons
set-cookie, CDN tidak menyimpan cache respons tersebut.Jika origin server tidak mengembalikan header respons Set-Cookie, respons di-cache berdasarkan TTL kode status yang dikonfigurasi di konsol CDN . Jika terdapat beberapa aturan yang dikonfigurasi, lihat Prioritas beberapa aturan untuk mengetahui cara menentukan aturan yang berlaku.
Dalam skenario lainnya, respons tidak di-cache.
Untuk permintaan yang menggunakan range origin fetch, jika node CDN menerima kode status non-206 dari origin server, node CDN menghapus slice yang telah di-cache (timeout origin fetch tidak menyebabkan file yang di-cache dihapus).
Dalam range origin fetch, origin server membagi file besar menjadi beberapa slice lebih kecil dan mengembalikannya ke node CDN . Misalnya, sebuah file dibagi menjadi 10 slice dan node CDN telah menyimpan cache lima slice. Ketika node tersebut meminta slice keenam, origin server mengembalikan kode status 5xx. Dalam kasus ini, kelima slice yang sebelumnya telah di-cache akan dihapus.
Prioritas beberapa aturan
Anda dapat mengonfigurasi beberapa aturan cache kode status. Jika suatu permintaan cocok dengan beberapa aturan sekaligus, hanya satu aturan yang berlaku. Aturan yang berlaku ditentukan sebagai berikut:
Urutan evaluasi:
Jenis aturan dievaluasi terlebih dahulu (ekstensi file > direktori), lalu waktu pembuatan aturan dievaluasi (dibuat lebih awal > dibuat lebih akhir).
Prioritas aturan jenis berbeda: ekstensi file > direktori.
Misalnya, suatu permintaan cocok dengan dua aturan sekaligus (kode status 404 dikonfigurasi di kedua aturan tersebut), dan jenis aturannya adalah File Extension dan Directory. Dalam hal ini, waktu kedaluwarsa kode status 404 ditentukan oleh aturan dengan jenis File Extension. Untuk contoh spesifik, lihat Contoh konfigurasi.
Prioritas aturan jenis yang sama: dibuat lebih awal > dibuat lebih akhir (dari atas ke bawah dalam daftar aturan).
Misalnya, suatu permintaan cocok dengan dua aturan sekaligus (kode status 404 dikonfigurasi di kedua aturan tersebut), dan kedua aturan tersebut memiliki jenis yang sama (keduanya bertipe File Extension atau keduanya bertipe Directory). Dalam hal ini, waktu kedaluwarsa kode status 404 ditentukan oleh aturan yang dibuat lebih awal. Untuk contoh spesifik, lihat Contoh konfigurasi.
Prosedur
-
Login ke CDN console.
-
Di panel navigasi kiri, klik Domain Names.
-
Pada halaman Domain Names, temukan nama domain target dan klik Manage di kolom Actions.
-
Di panel navigasi domain, klik Cache.
Klik tab Status Code TTL.
Klik Create Rule dan konfigurasikan TTL kode status.
Parameter
Deskripsi
Type
Dua jenis didukung: Directory dan File Extension. Pilih jenis sesuai kebutuhan bisnis Anda.
CatatanPrioritas aturan jenis berbeda: ekstensi file > direktori. Untuk informasi selengkapnya, lihat Aturan cache untuk kode status abnormal.
Object
Jika Anda mengatur jenis ke Directory, perhatikan hal-hal berikut:
Anda hanya dapat menambahkan satu direktori dalam satu waktu.
Anda dapat memasukkan path lengkap direktori. Path harus diawali dengan garis miring (/), misalnya, /directory/aaa.
Jika Anda mengatur jenis ke File Extension, perhatikan hal-hal berikut:
Anda dapat memasukkan satu atau beberapa ekstensi file. Pisahkan beberapa ekstensi file dengan koma (,), misalnya,
jpg,txt.CatatanJika ekstensi file yang dikonfigurasi dalam catatan berbeda persis sama dan hanya berbeda dalam huruf besar/kecil, catatan yang dibuat belakangan akan menimpa catatan yang dibuat sebelumnya. Misalnya, setelah Anda membuat aturan jpg,txt, membuat aturan jpg,txt lainnya akan menimpa catatan jpg,txt sebelumnya. Dalam kasus ini, jika Anda perlu mengonfigurasi aturan huruf kecil, Anda dapat membuat aturan terpisah untuk txt dan jpg. Aturan yang dikonfigurasi bersifat case-sensitive saat diterapkan.
Tanda bintang (*) tidak dapat digunakan untuk mencocokkan semua jenis file.
Expire In
Kode status yang akan di-cache dan durasi cache-nya. Durasi maksimum adalah tiga tahun. Satuan: detik. Aturan konfigurasi sebagai berikut:
Pisahkan beberapa kode status dengan koma (,).
Untuk kode status 2xx dan 3xx, hanya konfigurasi eksak kode status individual yang didukung. Konfigurasi batch fuzzy tidak didukung. Misalnya, 201=10 didukung, tetapi 2xx=12 tidak didukung.
Untuk kode status 4xx dan 5xx, baik konfigurasi eksak kode status individual maupun konfigurasi batch fuzzy didukung. Misalnya, baik 401=10 maupun 4xx=12 didukung.
Honor Origin TTL
Jika Anda mengaktifkan sakelar ini dan origin server mengembalikan header kebijakan cache (termasuk Cache-Control dan Pragma), kebijakan cache yang dikembalikan oleh origin server memiliki prioritas lebih tinggi.
Ignore Origin No-Cache Headers
Jika Anda mengaktifkan sakelar ini, node CDN mengabaikan header kebijakan cache berikut yang dikembalikan oleh origin server. Semua header ini menunjukkan bahwa konten tidak di-cache.
Cache-Control: no-store
Cache-Control: no-cache
Cache-Control: max-age=0
Pragma: no-cache
Clients Follow the CDN Cache Policy
Jika Anda mengaktifkan sakelar ini, node CDN mengembalikan kebijakan cache yang akhirnya berlaku kepada klien.
Force Content Revalidation
Parameter ini hanya berlaku ketika waktu kedaluwarsa cache diatur ke 0. Efeknya sebagai berikut:
Nonaktif (default): Jika waktu kedaluwarsa cache CDN diatur ke 0, file tidak di-cache pada node CDN , dan setiap permintaan harus memicu origin fetch untuk mendapatkan konten.
Aktif: Jika waktu kedaluwarsa cache CDN diatur ke 0, file dapat di-cache pada node CDN , dan setiap permintaan harus memicu origin fetch untuk memvalidasi ulang konten yang di-cache.
Klik OK untuk menyelesaikan konfigurasi.
Setelah TTL kode status dikonfigurasi, Anda dapat Modify atau Delete konfigurasi saat ini dalam daftar Expire In.
Contoh konfigurasi
Contoh 1: aturan jenis direktori
Buat aturan jenis direktori, seperti pada contoh berikut:
Dalam direktori /directory/aaa, semua kode status 4xx di-cache selama 10 detik, dan kode status 201 di-cache selama 15 detik. Selama durasi tersebut, node CDN langsung merespons permintaan yang sesuai. Setelah durasi berakhir, origin fetch akan dipicu.
Contoh 2: aturan jenis ekstensi file
Buat aturan jenis ekstensi file, seperti pada contoh berikut:
Untuk file dengan ekstensi .jpg atau .txt, kode status 403 di-cache selama 10 detik, dan kode status 404 di-cache selama 15 detik. Selama durasi tersebut, node CDN langsung merespons permintaan yang sesuai. Setelah durasi berakhir, origin fetch akan dipicu.
Contoh 3: prioritas aturan jenis berbeda
Aturan jenis direktori dan aturan jenis ekstensi file dibuat, dan waktu kedaluwarsa kode status yang berbeda dikonfigurasi, seperti pada contoh berikut:
Pengguna meminta
http://example.com/directory/aaa/test.jpg. Resource tersebut tidak di-cache pada node CDN, sehingga node CDN meminta resource tersebut dari origin server, yang mengembalikan kode status 404. Permintaan tersebut cocok dengan aturan jenis direktori dan aturan jenis ekstensi file. Karena aturan jenis berbeda berlaku dalam urutan ekstensi file > direktori, aturan jenis ekstensi file yang berlaku, dan durasi cache aktual kode status 404 adalah 20 detik.Contoh 4: prioritas beberapa aturan jenis yang sama
Aturan jenis direktori 1 dibuat terlebih dahulu dan cocok dengan alamat /directory. Kemudian, aturan jenis direktori 2 dibuat dan cocok dengan alamat /directory/aaa. Waktu kedaluwarsa kode status yang berbeda dikonfigurasi, seperti pada contoh berikut:
Pengguna meminta
http://example.com/directory/aaa/test.jpg. Resource tersebut tidak di-cache pada node CDN, sehingga node CDN meminta resource tersebut dari origin server, yang mengembalikan kode status 404. Permintaan tersebut cocok dengan kedua aturan jenis direktori. Karena aturan jenis yang sama berlaku dalam urutan dibuat lebih awal > dibuat lebih akhir, aturan jenis direktori 1 yang dibuat lebih awal yang berlaku, dan durasi cache aktual kode status 404 adalah 15 detik.Contoh 5: menyelesaikan masalah redirect 301 yang terus-menerus di-cache
Nama domain yang dipercepat CDN terus-menerus mengembalikan redirect 301 ke nama domain lain, tetapi origin server tidak lagi mengembalikan redirect tersebut saat diakses langsung (melewati CDN). Dalam kasus ini, Anda dapat menambahkan aturan di Status Code TTL, mengatur kode status ke
301dan durasi cache ke0(yaitu, 301=0), sehingga node CDN tidak lagi menyimpan cache respons 301. Setelah konfigurasi selesai, kirimkan tugas refresh untuk URL tersebut guna merefresh cache CDN, menghapus respons 301 yang di-cache, dan membuat aturan berlaku segera. Kemudian, hapus cache browser lokal dan akses kembali URL tersebut untuk memverifikasi hasilnya.