Fitur custom cache key memungkinkan Anda menghasilkan kunci cache dari berbagai bagian permintaan HTTP, seperti URI, parameter kueri, header HTTP, atau variabel kustom. Dengan memetakan permintaan serupa untuk file yang sama ke satu kunci cache, Anda dapat meningkatkan rasio hit cache, mengurangi pengambilan asal (origin fetches), serta menurunkan waktu respons dan konsumsi bandwidth.
Catatan penggunaan
Custom cache key dan Ignore Parameters
Fitur Parameter Actions pada custom cache key dan fitur Ignore Parameters keduanya mengontrol cara parameter kueri URL ditangani saat menghasilkan kunci cache. Jika kedua fitur dikonfigurasi secara bersamaan, fitur Ignore Parameters akan menjadi tidak efektif karena pengaturan custom cache key di tingkat aturan menggantikan konfigurasi global Ignore Parameters.
Jika Anda menggunakan operasi parameter untuk custom cache key, nonaktifkan fitur Ignore Parameters untuk mencegah konflik aturan. Operasi parameter mencakup fungsionalitas fitur Ignore Parameters (melalui operasi Delete atau Reserve) dan menawarkan kontrol parameter yang lebih fleksibel.
Jika Anda menggunakan fitur Ignore Parameters, lihat tabel berikut untuk memutuskan apakah perlu beralih ke operasi parameter untuk custom cache key.
Scenario | Ignore Parameters | Custom cache key |
Abaikan semua parameter kueri dalam kunci cache | Atur Ignore Parameters ke Yes dan biarkan Keep specified parameters kosong. | Tambahkan aturan pemrosesan untuk query parameters:
|
Pertahankan hanya parameter kueri | Atur Ignore Parameters ke Yes dan atur Keep specified parameters ke | Tambahkan aturan pemrosesan untuk query parameters:
|
Hapus hanya parameter kueri | Atur Delete specified parameters ke | Tambahkan aturan pemrosesan untuk query parameters:
|
Jika Anda perlu memodifikasi nilai parameter lebih lanjut atau menambahkan parameter tambahan selain mengabaikan atau mempertahankannya, gunakan operasi parameter untuk custom cache key alih-alih fitur Ignore Parameters.
Urutan eksekusi rules engine
Saat fitur ini mereferensikan Rule Condition dari Rules Engine, urutan eksekusinya didasarkan pada prioritas Rule Condition di Rules Engine, bukan prioritas aturan yang dikonfigurasi dalam fitur ini.
Refresh cache
Setelah Anda mengonfigurasi custom cache key, PoP DCDN mengindeks file yang di-cache berdasarkan kunci cache yang telah diproses. Saat melakukan refresh cache berdasarkan URL, kirimkan URL yang sesuai dengan kunci cache di PoP DCDN. Jika tidak, operasi refresh tidak akan menemukan konten target.
Misalnya, jika Anda mengonfigurasi aturan penggantian URI untuk mengganti /a/b/image.jpg dengan /c/image.jpg, kunci cache untuk file tersebut di PoP DCDN menjadi http://aliyundoc.com/c/image.jpg. Untuk merefresh cache file ini, Anda harus mengirimkan http://aliyundoc.com/c/image.jpg (kunci cache yang telah diproses), bukan URL permintaan klien asli.
Jika Anda mengonfigurasi operasi parameter seperti menghapus atau memodifikasi parameter, gunakan URL yang telah diproses sebagai alamat refresh. Catat format kunci cache akhir setelah mengonfigurasi aturan custom cache key untuk menyederhanakan operasi refresh cache di masa mendatang.
Penulisan ulang URL origin
Fitur custom cache key hanya memengaruhi cara kunci cache dihasilkan di PoP DCDN. Fitur ini tidak mengubah URL aktual yang digunakan untuk pengambilan asal (origin fetches). Saat PoP DCDN mengambil dari origin, URL permintaan klien asli tetap digunakan. Untuk menulis ulang parameter atau jalur permintaan yang dikirim ke origin, gunakan fitur origin URL rewrite.
Misalnya, klien meminta http://example.com/image.jpg?key1=1&key2=2. Anda mengonfigurasi custom cache key untuk menghapus parameter key1. Kunci cache menjadi http://example.com/image.jpg?key2=2. Namun, saat PoP DCDN mengambil dari origin, permintaan tetap menggunakan URL asli: http://example.com/image.jpg?key1=1&key2=2.
Kasus penggunaan
Fitur custom cache key tidak memodifikasi URL yang digunakan untuk pengambilan asal. Fitur ini hanya mengubah pengidentifikasi cache untuk permintaan tersebut. Permintaan yang dikirim ke origin tetap identik dengan permintaan klien asli.
Kunci cache adalah pengidentifikasi unik untuk file yang di-cache di PoP DCDN. Secara default, kunci cache adalah URL permintaan lengkap, termasuk parameter kueri.
Scenario 1
Saat permintaan klien untuk file yang sama berisi parameter URL berbeda, PoP DCDN memperlakukannya sebagai permintaan untuk file berbeda. Hal ini menghasilkan beberapa salinan cache dari file yang sama dan meningkatkan jumlah pengambilan asal.
Anda dapat menggunakan aturan custom cache key untuk menyatukan kunci cache dari permintaan serupa, sehingga mengurangi laju pengambilan asal.
Scenario 2
DCDN memperlakukan permintaan dengan URL yang sama sebagai permintaan untuk file yang sama. Namun, header HTTP permintaan berisi bidang client untuk membedakan sistem klien, dan tujuannya adalah mengambil file berbeda.
Dalam kasus ini, Anda dapat menggunakan Cachekey kustom untuk menambahkan nilai bidang client ke Cachekey. Dua permintaan tersebut kemudian diidentifikasi sebagai dua Cachekey berbeda.
Prosedur
-
Masuk ke DCDN console.
-
Di panel navigasi sebelah kiri, klik Domain Names.
-
Pada halaman Domain Names, temukan nama domain target lalu klik Configure.
-
Di pohon navigasi sebelah kiri domain, klik Caching.
Pada tab Custom Cache Key, konfigurasikan Cache Key.
CatatanKunci cache akhir merupakan kombinasi dari empat komponen berikut: URI, Parameter Actions, HTTP Headers, dan Custom Variables.

Parameter
Description
Rule Condition
Kondisi aturan menentukan apakah konfigurasi berlaku untuk suatu permintaan dengan mengevaluasi parameter dalam permintaan tersebut.
PentingSaat suatu fitur mereferensikan kondisi aturan yang dikonfigurasi di rules engine, urutan eksekusinya mengikuti prioritas kondisi aturan terkait, bukan urutan konfigurasi fitur.
Do not use conditions: Menonaktifkan aturan kondisional.
Anda dapat menambah atau mengedit aturan kondisional di Rules engine.
URIs
Jika URI permintaan klien sesuai dengan Source URI yang dikonfigurasi, sistem akan mengganti Source URI dengan Final URI yang dikonfigurasi saat menghasilkan bagian URI dari kunci cache.
Anda dapat mengonfigurasi beberapa aturan penggantian URI. Jika terdapat beberapa aturan, pencocokan dilakukan secara berurutan dari atas ke bawah. Setelah Source URI cocok, sistem menggunakan Final URI yang sesuai untuk penggantian dan menghentikan pencocokan aturan berikutnya.
Source URI: URI yang diawali garis miring (/), tidak termasuk awalan http:// atau nama domain. Mendukung ekspresi reguler
PCRE.Final URI: URI yang diawali garis miring (/) dan tidak mengandung awalan http:// atau nama domain.
Parameter Actions
Operasi ini berlaku untuk parameter kueri dalam URL permintaan asli. Anda dapat melakukan operasi Add, Delete, Modify, atau Reserve pada parameter tersebut. Parameter hasil membentuk bagian string kueri dari kunci cache. Anda dapat mengonfigurasi beberapa operasi, yang dieksekusi secara berurutan dari atas ke bawah.
Add: Menambahkan parameter kueri baru ke kunci cache. Misalnya, jika URL asli adalah
http://image.example.com/cat.jpgdan Anda menambahkan parameter kueritype=jpg, kunci cache menjadihttp://image.example.com/cat.jpg?type=jpg.Delete: Menghapus parameter kueri tertentu dari URL permintaan asli saat kunci cache dihasilkan. Misalnya, jika URL asli adalah
http://image.example.com/cat.jpg?type=jpgdan Anda menghapus parametertype, kunci cache menjadihttp://image.example.com/cat.jpg.Modify: Memodifikasi parameter kueri tertentu dalam URL permintaan asli saat kunci cache dihasilkan. Misalnya, jika URL asli adalah
http://image.example.com/cat.jpg?type=jpgdan Anda memodifikasi parameter menjaditype=png, kunci cache menjadihttp://image.example.com/cat.jpg?type=png.Reserve: Hanya mempertahankan parameter kueri tertentu dari URL permintaan asli saat kunci cache dihasilkan. Misalnya, jika URL asli adalah
http://image.example.com/cat.jpg?type=jpg&path=imagedan Anda mempertahankan parametertype, kunci cache menjadihttp://image.example.com/cat.jpg?type=jpg.
HTTP Headers
Menambahkan nilai header HTTP tertentu dari permintaan klien asli ke kunci cache. Anda dapat mengonfigurasi beberapa nama header HTTP, dipisahkan spasi. Nilai setiap header HTTP yang ditentukan ditambahkan ke kunci cache secara berurutan.
Misalnya, jika URL asli adalah
http://image.example.com/cat.jpgdan permintaan klien mencakup header HTTPpath: image, serta Anda mengatur pengaturan HTTP Headers untuk menyertakan headerpath, kunci cache menjadihttp://image.example.com/cat.jpgimage.Custom Variables
Menambahkan informasi variabel kustom ke kunci cache yang dihasilkan untuk meningkatkan fleksibilitas konfigurasi cache Anda. Variabel kustom mencakup parameter berikut:
Variable Name: Nama kustom untuk variabel tersebut.
Variable Source: Bidang tertentu dalam permintaan klien yang digunakan sebagai sumber variabel.
Query String Parameter: String kueri dalam URL permintaan.
Request Header: Header permintaan dalam permintaan klien.
Path: Jalur resource dalam URL permintaan.
Scheme: Protokol yang digunakan dalam URL permintaan. Mendukung HTTP dan HTTPS.
Source Field Name: Berlaku untuk tiga skenario berikut:
Nama parameter string kueri tertentu.
Nama header permintaan tertentu.
Matching Rule: Ekspresi reguler yang digunakan untuk mencocokkan karakter tertentu dalam nilai bidang.
Variable Expression: Digunakan untuk menghasilkan nilai variabel akhir. Mendukung string tetap dan ekspresi seperti
$1untuk mereferensikan konten dari grup tangkapan pertama.
Klik OK untuk menyelesaikan konfigurasi.
Contoh konfigurasi
URIs
Permintaan untuk http://aliyundoc.com/a/b/image.jpg dan http://aliyundoc.com/a/b/c/image.jpg diperlakukan sebagai permintaan untuk file yang sama. Kunci cache untuk file ini adalah http://aliyundoc.com/c/image.jpg.
Parameter Actions
Untuk permintaan klien ke http://aliyundoc.com/a/b/image.jpg?delete_par=1&modify_par=1 , aturan menambahkan add_par=1, menghapus delete_par, dan memodifikasi nilai modify_par menjadi 2. Kunci cache akhir adalah http://aliyundoc.com/a/b/image.jpg?modify_par=2&add_par=1.
Untuk operasi parameter, jika beberapa operasi diterapkan pada variabel yang sama, prioritas operasinya adalah sebagai berikut: Add > Delete > Keep > Modify.

HTTP Headers
Nilai header HTTP User-Agent dan Accept-Language dari permintaan klien ditambahkan ke kunci cache. Untuk permintaan ke http://aliyundoc.com/a/b/image.jpg dengan User-Agent: Mozilla/5.0 (Linux; X11) dan Accept-Language: en, kunci cache yang dihasilkan adalah http://aliyundoc.com/a/b/image.jpgMozilla/5.0(Linux;X11)en.
Custom Variables
Contoh 1
Nama variabel adalah language, sumbernya adalah Request Header, nama bidang sumber adalah Accept-Language, pola pencocokan adalah ([%w]+),([%w]+), dan ekspresi variabel adalah $1aa.
Jika klien mengirim permintaan untuk http://aliyundoc.com/a/b/image.jpg dengan header permintaan HTTP Accept-Language=en,ch , pola pencocokan mencocokkan en dan menetapkannya ke $1 dalam ekspresi variabel. Ekspresi variabel kemudian menambahkan aa untuk membuat nilai enaa. Nilai ini dialiaskan sebagai language dan ditambahkan ke URL untuk membentuk kunci cache: http://aliyundoc.com/a/b/image.jpgenaa.
Dalam ekspresi variabel, $n merepresentasikan konten yang ditangkap oleh pasangan tanda kurung ke-n dalam pola pencocokan. Misalnya, dalam Contoh 1, jika input adalah Accept-Language=en,ch dan pola pencocokan adalah ([%w]+),([%w]+), maka $1=en dan $2=ch.
Contoh 2
Nama variabel adalah expired, sumbernya adalah Request Cookie, nama bidang sumber adalah a, pola pencocokan adalah [%w]+:(.*), dan ekspresi variabel adalah $1.
Jika klien meminta http://aliyundoc.com/a/b/image.jpg dengan cookie Cookie a=expired_time:12635187, pola pencocokan mencocokkan 12635187. Nilai ini ditetapkan ke $1 dalam ekspresi variabel dengan alias expired, dan ditambahkan ke URL untuk membentuk Cachekey akhir: http://aliyundoc.com/a/b/image.jpg12635187.
Contoh 3
Konfigurasikan aturan URI dan variabel kustom secara bersamaan.
URI:
Tulis ulang semua URI permintaan yang cocok dengan
/abc/.*/abcmenjadi/abc.
Variabel Kustom:
Nama variabel adalah
testname, sumbernya adalahPath, pola pencocokan adalah/abc/xyz/(.*), dan ekspresi variabel adalah$1.
Untuk permintaan klien dengan URL
http://aliyundoc.com/abc/xyz/abc/image.jpg, Cache Key dinormalisasi menjadihttp://aliyundoc.com/abc/image.jpgberdasarkan konfigurasi URI. Kemudian, berdasarkan konfigurasi Variabel Kustom, URL ini cocok dengan/abc/xyz/(.*), di mana$1diberi nilaiabcdan ditambahkan ke Cache Key untuk membentuk Cache Key akhir:http://aliyundoc.com/abc/image.jpgabc. Hal ini memungkinkan kedua aturan bekerja sama untuk menerapkan logika caching yang lebih kompleks.Jika variabel kustom untuk CacheKey tidak cocok, ekspresi variabel
$1tidak akan digabungkan ke CacheKey.