Konfigurasikan custom cache key untuk menetapkan aturan yang menghasilkan kunci cache dari berbagai bagian permintaan HTTP, seperti URI, parameter kueri, header HTTP, atau variabel kustom. Pendekatan ini memetakan permintaan serupa terhadap file yang sama ke satu kunci cache, sehingga meningkatkan rasio hit cache, mengurangi laju pengambilan asal (origin fetch), serta menurunkan waktu respons dan konsumsi bandwidth.
Catatan penggunaan
Custom cache key dan Ignore Parameters
Fitur Parameter Operations pada CacheKey kustom dan fitur Ignore Parameters keduanya mengontrol apakah parameter kueri URL disertakan dalam pembuatan kunci cache. Jika Anda mengaktifkan kedua fitur secara bersamaan, konflik dalam aturan pembuatan kunci cache dapat terjadi, yang berpotensi menurunkan rasio hit cache atau menyebabkan konten cache tidak normal.
Jika Anda menggunakan operasi parameter untuk custom cache key, nonaktifkan fitur Ignore Parameters untuk mencegah konflik aturan. Operasi parameter untuk custom cache key 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 akan beralih ke operasi parameter untuk custom cache key.
Skenario | 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:
|
Hanya pertahankan 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 mempertahankan parameter, kami sarankan menggunakan operasi parameter untuk custom cache key daripada fitur Ignore Parameters.
Urutan eksekusi rules engine
Saat fitur ini mereferensikan Rule Condition dari Rules Engine, urutan eksekusi didasarkan pada prioritas Rule Condition yang ditetapkan 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 menggunakan kunci cache yang telah diproses. Saat Anda melakukan refresh cache berdasarkan URL, Anda harus mengirimkan URL yang sesuai dengan kunci cache di PoP DCDN. Jika tidak, operasi refresh tidak akan menemukan konten target.
Sebagai contoh, 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, Anda juga harus menggunakan URL yang telah diproses sebagai alamat refresh. Kami menyarankan agar Anda mencatat 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 fetch). Saat PoP DCDN melakukan origin fetch, URL permintaan klien asli tetap digunakan untuk mengambil konten dari origin. Untuk menulis ulang parameter atau path permintaan yang dikirim ke origin, gunakan fitur origin URL rewrite.
Sebagai contoh, 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 melakukan origin fetch, URL asli tetap diminta: http://example.com/image.jpg?key1=1&key2=2.
Kasus penggunaan
Fitur custom cache key tidak memodifikasi URL yang digunakan untuk origin fetch. Fitur ini hanya mengubah identifikasi 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 ini adalah URL permintaan lengkap, termasuk parameter kueri apa pun.
Skenario 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 origin fetch.
Anda dapat menggunakan aturan custom cache key untuk menyatukan kunci cache dari permintaan serupa. Hal ini mengurangi laju origin fetch.
Skenario 2
DCDN memperlakukan permintaan dengan URL yang sama sebagai permintaan untuk file yang sama. Namun, header HTTP permintaan sebenarnya berisi bidang client untuk membedakan antar 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 kiri, klik Domain Names.
-
Pada halaman Domain Names, temukan nama domain yang ingin Anda kelola lalu klik Configure.
-
Di pohon navigasi kiri halaman 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
Deskripsi
Rule Condition
Rule condition menentukan apakah konfigurasi berlaku untuk suatu permintaan dengan mengevaluasi berbagai parameter dalam permintaan tersebut.
PentingSaat suatu fitur mereferensikan rule condition yang dikonfigurasi di rules engine, urutan eksekusi mengikuti prioritas rule condition 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 menetapkan 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 yang 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 menyertakan header HTTPpath: image, serta Anda mengatur pengaturan HTTP Headers untuk menyertakan headerpath, kunci cache menjadihttp://image.example.com/cat.jpgimage.Custom Variables
Anda dapat menggunakan ekspresi reguler untuk mencocokkan nilai parameter kueri, header HTTP, parameter cookie, atau URI tertentu dari permintaan klien asli. Jika ditemukan kecocokan, nilai yang sesuai akan ditambahkan ke kunci cache. Untuk detailnya, lihat Contoh konfigurasi.
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 akhir: 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 digunakan secara kombinasi untuk menerapkan logika caching yang lebih kompleks.Jika variabel kustom untuk CacheKey tidak cocok, ekspresi variabel
$1tidak akan digabungkan ke CacheKey.