Mesin aturan menyediakan antarmuka pengguna grafis untuk mengonfigurasi aturan kondisional yang menganalisis parameter permintaan pengguna guna menentukan apakah konfigurasi tertentu berlaku, sehingga memberikan kontrol fleksibel dan tepat atas penerapan kebijakan konfigurasi CDN .
Latar Belakang
Konsol CDN Alibaba Cloud menyediakan fitur dasar seperti mengonfigurasi masa kedaluwarsa cache dan menulis ulang parameter origin-fetch, yang memenuhi sebagian besar kebutuhan umum. Namun, untuk kebutuhan khusus—seperti mengarahkan permintaan dengan path yang mengandung /example ke alamat origin tertentu—Anda harus menggunakan mesin aturan untuk menerapkan konfigurasi kustom. Selain itu, Alibaba Cloud CDN menyediakan fitur EdgeScript, yang mendukung kustomisasi dengan tingkat fleksibilitas tinggi.
Kemampuan | Fitur dasar | Fitur dasar dan mesin aturan | EdgeScript |
Penerapan fitur | Konfigurasi tujuan umum | Memungkinkan Anda membuat aturan filter kondisional menggunakan antarmuka grafis. Mendukung berbagai jenis pencocokan, seperti URI, Header, Cookie, dan Query String, serta kombinasi logika AND/OR. | Mendukung kustomisasi yang sangat fleksibel dan cocok untuk skenario lanjutan yang memerlukan skrip kustom. |
Skenario | Skenario tujuan umum | Skenario kustom lanjutan | Skenario sepenuhnya kustom |
Kemudahan penggunaan (keterampilan teknis yang diperlukan) | Tinggi | Sedang | Rendah |
Fleksibilitas konfigurasi | Rendah | Sedang | Tinggi |
Logika kompleks dan EdgeScript
Mesin aturan mendukung kombinasi logika dasar AND/OR, sehingga cocok untuk sebagian besar skenario filter kondisional. Namun, pertimbangkan skenario berikut untuk menentukan apakah Anda perlu menggunakan EdgeScript:
Pencocokan ekspresi reguler kompleks: Operator ekspresi reguler di mesin aturan dinonaktifkan secara default. Anda harus mengajukan tiket untuk mengaktifkannya. Jika Anda perlu menggunakan ekspresi reguler secara rutin, EdgeScript secara native mendukung pencocokan ekspresi reguler, sehingga lebih nyaman.
Kombinasi multi-dimensi presisi: Mengonfigurasi evaluasi kompleks yang menggabungkan beberapa kriteria—seperti mencocokkan IP klien dan User-Agent dengan ekspresi reguler (misalnya, memblokir permintaan dari rentang IP tertentu yang User-Agent-nya mengandung kata kunci tertentu)—akan merepotkan di mesin aturan. EdgeScript memungkinkan Anda menggabungkan berbagai kondisi secara fleksibel menggunakan logika skrip.
Kontrol akses IP multi-direktori granular: EdgeScript memungkinkan Anda memberikan akses rentang alamat IP berbeda ke direktori berbeda. Misalnya, Anda dapat mengizinkan satu rentang alamat IP mengakses semua direktori, mengizinkan alamat IP tertentu hanya mengakses satu direktori, dan menolak semua alamat IP lainnya. Gunakan
match_reuntuk mencocokkan alamat IP dan path URI. Gunakanreturn trueuntuk mengizinkan permintaan, dan gunakanexit(403)untuk menolaknya.
Batasan
Anda dapat membuat maksimal 50 kondisi aturan per nama domain.
Setiap kondisi aturan dapat berisi maksimal 20 sub-aturan.
Anda tidak dapat menggunakan operator pencocokan ekspresi reguler atau ketidakcocokan ekspresi reguler saat mengonfigurasi kondisi aturan di konsol atau melalui OpenAPI. Namun, Anda dapat melihat konfigurasi yang sudah ada yang menggunakan operator tersebut. Untuk menggunakan operator ini, gunakan ESA.
Satu kondisi aturan dapat dirujuk maksimal lima kali di seluruh fitur dalam satu nama domain.
Anda dapat menumpuk kondisi aturan hingga tiga level, dan setiap level dapat memiliki hubungan logika independen sendiri.
Jika suatu fitur—seperti mengatur waktu kedaluwarsa cache atau memodifikasi header permintaan arah keluar—merujuk kondisi aturan, prioritas kondisi tersebut yang menentukan urutan eksekusi, bukan urutan konfigurasi fitur tersebut.
Dari batasan di atas, maksimum 50 kondisi aturan, 20 sub-aturan, dan 3 level penumpukan adalah batasan keras yang tidak dapat ditingkatkan meskipun diminta. Jumlah total maksimum referensi ke kondisi aturan di seluruh fitur dalam satu nama domain yang dipercepat—yang secara default adalah 5—dapat ditingkatkan atas permintaan.
Untuk meningkatkan jumlah total referensi kondisi aturan untuk satu nama domain (secara default lima), ajukan tiket. Sertakan informasi berikut dalam tiket: nama domain yang dipercepat yang ingin Anda tingkatkan batasannya, jumlah target referensi, dan deskripsi skenario bisnis Anda.
Saat menambahkan nama domain yang dipercepat lainnya, ajukan tiket terpisah untuk meningkatkan jumlah referensi kondisi aturan untuk domain tersebut. Prosesnya sama seperti permintaan pertama.
Setiap kondisi dapat memiliki maksimal 32 nilai pencocokan untuk jenis pencocokan seperti IP klien, URI, ekstensi file, nama file, dan User-Agent. Jika Anda memiliki daftar putih IP klien yang besar, gabungkan beberapa alamat IP menjadi Blok CIDR (misalnya,
120.209.XXX.X/24) untuk mengonfigurasi alamat IP dan menghemat kapasitas nilai pencocokan.Anda dapat mengonfigurasi maksimal 32 nilai pencocokan User-Agent. Nilai yang melebihi batas ini akan diabaikan. Untuk mencocokkan banyak User-Agent, gunakan wildcard (
*) untuk menggabungkan nilai User-Agent yang serupa. Misalnya,*Chrome*mencocokkan semua versi browser Chrome, atau gunakan EdgeScript untuk logika pencocokan yang lebih fleksibel.
Prioritas fitur dan logika eksekusi
Saat mengonfigurasi mesin aturan, pertimbangkan prioritas fitur dan logika eksekusi berikut:
Perlindungan hotlink Referer didahulukan daripada mesin aturan: Saat permintaan menyertakan header Referer, sistem terlebih dahulu mengevaluasinya terhadap daftar hitam dan daftar putih Referer. Jika permintaan sesuai dengan daftar putih, permintaan tersebut diizinkan dan melewati mesin aturan. Jika permintaan tidak sesuai dengan daftar putih, sistem langsung memblokirnya. Jika header Referer kosong, permintaan melewati logika ini dan dievaluasi oleh mesin aturan.
Urutan eksekusi untuk fitur yang menggunakan kondisi aturan: Saat fitur seperti Masa Kedaluwarsa Cache atau Modifikasi Header Permintaan Arah Keluar menggunakan kondisi aturan, sistem mengeksekusinya berdasarkan prioritas kondisi aturan yang terkait, bukan urutan konfigurasi fitur tersebut. Misalnya, jika Masa Kedaluwarsa Cache dan Penulisan Ulang Parameter Back-to-Origin menggunakan kondisi aturan dengan prioritas berbeda, sistem mengeksekusinya sesuai urutan prioritas kondisi aturan, dari yang tertinggi ke terendah.
Atasi konflik antara otentikasi URL dan caching: Jika Anda mengalami perilaku tak terduga setelah mengonfigurasi otentikasi URL—seperti permintaan dapat diakses tanpa parameter otentikasi atau tautan valid diblokir secara salah—periksa hal berikut secara berurutan:
Periksa apakah daftar putih WAF dikonfigurasi. Daftar putih WAF mungkin melewati logika otentikasi CDN dan mengizinkan permintaan langsung.
Verifikasi bahwa fitur Abaikan Parameter URL tidak menghapus parameter otentikasi, seperti
auth_key, yang difilter oleh pengaturan abaikan parameter URL, sehingga melewati validasi otentikasi untuk cache hit.Konfirmasi bahwa Aturan Kunci Cache tidak mengabaikan parameter otentikasi. Jika iya, permintaan dengan parameter otentikasi berbeda mungkin menerima konten cache yang sama, sehingga secara efektif melewati otentikasi.
Sintaks kondisi aturan
Kondisi aturan menggabungkan satu atau beberapa ekspresi kondisional menggunakan operator logika. Bagian berikut menjelaskan sintaks tersebut.
Operator logika
Operator logika mengevaluasi kondisi pada level yang sama, termasuk set kondisi bersarang. Operator yang didukung adalah and dan or.
and(AND): Operator logika AND. Pencocokan berhasil hanya jika semua kondisi bernilai true.or(OR): Operator logika OR. Pencocokan berhasil jika salah satu kondisi bernilai true. Misalnya, mengonfigurasi beberapa kondisi aturan untuk header respons yang sama memungkinkan Anda menambahkan header respons yang sama dalam kondisi berbeda. Contoh: Saat URI mengandung/path-aor URI mengandung/path-b, tambahkan header respons.
Parameter ekspresi kondisional
Ekspresi kondisional, sebagai unit paling granular dari suatu aturan, mencakup parameter berikut:
Parameter | Parameter konfigurasi yang sesuai di fungsi condition untuk konfigurasi nama domain | Deskripsi | Wajib |
Pencocokan kondisional | match | Menentukan ekspresi pencocokan kondisional. | Ya |
Operator logika | logic | Menentukan operator logika untuk ekspresi pencocokan kondisional. Nilai yang valid adalah | Ya |
Kriteria | criteria | Menentukan array ekspresi kondisional yang akan dievaluasi. | Ya |
Jenis pencocokan | MatchType | Menentukan jenis informasi dalam permintaan klien yang akan dicocokkan. | Ya |
Obyek pencocokan | MatchObject | Mempersempit lebih lanjut jenis pencocokan. Misalnya, alamat IP klien dapat ditentukan sebagai IP koneksi POP atau IP XFF. | Tidak |
Operator pencocokan | MatchOperator | Menentukan perbandingan yang akan dilakukan. | Ya |
Nilai pencocokan | MatchValue | Nilai yang dibandingkan dengan data dari permintaan klien. | Ya |
Negasi kondisi | negate | Menentukan apakah hasil ekspresi kondisional harus dinegasikan. Nilai yang valid adalah true dan false. | Ya |
Sensitivitas huruf besar/kecil | caseSensitive | Menentukan apakah nilai pencocokan peka terhadap huruf besar/kecil. | Tidak |
Nama kondisi aturan | name | Menentukan nama kondisi aturan. | Ya |
Status | status | Menentukan status kondisi aturan. | Ya |
Konfigurasi ekspresi kondisional
Jenis pencocokan | Parameter konfigurasi yang sesuai di fungsi condition untuk konfigurasi nama domain | Deskripsi | Obyek pencocokan | Operator pencocokan | Nilai pencocokan | Sensitivitas huruf besar/kecil | Variabel nginx/tengine yang sesuai |
Protokol | scheme | Protokol yang digunakan oleh permintaan klien, seperti HTTP atau HTTPS. | Tidak berlaku |
|
| Tidak berlaku | $scheme |
Metode permintaan | method | Metode permintaan yang digunakan oleh permintaan klien, seperti GET atau PUT. | Tidak berlaku |
|
| Tidak berlaku | $request_method |
URI (path) | uri | Path dalam URL permintaan klien, tidak termasuk parameter permintaan. Contoh: | Tidak berlaku |
| Wildcard |
| $raw_uri atau $uri |
Nama file | basename | Nama file yang diminta oleh klien. Contoh: name1. | Tidak berlaku |
| Wildcard |
| - |
Ekstensi file | extension | Ekstensi file yang diminta oleh klien. Sistem mengidentifikasi ekstensi sebagai substring dari titik terakhir (.) hingga akhir nama file. Contoh: | Tidak berlaku |
| Wildcard |
| - |
Hostname | hostname | Hostname dalam permintaan klien. Urutan pencocokan: host di URL permintaan > host di header permintaan Host. | Tidak berlaku |
| Host dari permintaan klien. Anda dapat memasukkan beberapa nilai. |
| $host atau $http_host |
Alamat IP klien | clientip | Alamat IP klien. IPv4 (contoh, |
Catatan Untuk informasi lebih lanjut tentang POP connection IP dan XFF IP, lihat . |
| Alamat IPv6, seperti 240e:XXX:3004:2:3:0:0:3f7, dan Blok CIDR, seperti 120.209.XXX.XXX/31, didukung. Anda dapat memasukkan beberapa nilai. | Tidak berlaku | $remote_addr |
Versi IP klien | clientipVer | Versi IP dari alamat klien: IPv4 atau IPv6. |
Catatan Untuk informasi lebih lanjut tentang POP connection IP dan XFF IP, lihat . |
|
| Tidak berlaku | - |
Penyedia layanan Internet (ISP) | geolocation | ISP tempat alamat IP klien terdaftar. |
Catatan Untuk informasi lebih lanjut tentang POP connection IP dan XFF IP, lihat . |
| Anda dapat memilih ISP dari daftar drop-down atau memasukkan karakter untuk memfilter opsi. Pencarian fuzzy berdasarkan ID atau nama didukung. Anda dapat memasukkan beberapa nilai. | Tidak berlaku | $ip_isp_id |
Lokasi geografis IP | geolocation | Lokasi geografis alamat IP klien. |
Catatan Untuk informasi lebih lanjut tentang POP connection IP dan XFF IP, lihat . |
| Anda dapat memilih lokasi dari daftar drop-down atau memasukkan karakter untuk memfilter opsi. Pencarian fuzzy berdasarkan ID atau nama didukung. Anda dapat memasukkan beberapa nilai. | Tidak berlaku | $ip_country_id |
Parameter permintaan | querystring | Parameter dalam URL permintaan. | Masukkan nama parameter. |
| Wildcard |
| $arg_{name} |
Header permintaan | header | Header dalam permintaan klien. | Anda dapat memasukkan nama parameter atau memilih parameter dari daftar drop-down. |
| Anda dapat memasukkan beberapa nilai. |
| $http_{name} |
Cookie | cookie | Cookie dalam permintaan klien. | Masukkan nama cookie. |
| Wildcard |
| $cookie_{name} |
User-Agent | useragent | User-Agent dalam header permintaan. | Tidak berlaku |
| Anda dapat memilih nilai dari daftar drop-down atau memasukkan nilai User-Agent, seperti |
| $http_user_agent |
Bucket range | range | Mencocokkan persentase tertentu dari permintaan klien. | Tidak berlaku |
| Masukkan nilai persentase. | Tidak berlaku | - |
Waktu | time | Waktu terjadinya permintaan klien. Waktu dalam UTC+8. Contoh, 09:10~14:22. | Tidak berlaku |
| Masukkan rentang waktu, seperti 09:10~14:22, yang merepresentasikan periode dari 09:10 hingga 14:22. | Tidak berlaku | - |
Variabel Nginx | ngxvar | Gunakan variabel Nginx jika variabel sebelumnya tidak memenuhi kebutuhan Anda. Untuk daftar variabel yang didukung, lihat dokumentasi resmi Nginx. | Anda dapat memilih variabel dari daftar drop-down atau memasukkan nama variabel. Penggabungan didukung, seperti |
| Anda dapat memasukkan beberapa nilai. | Tidak berlaku | ${name} |
Catatan konfigurasi umum untuk ekspresi kondisional
Titik awal pencocokan URI (path): Untuk pencocokan URI, nilainya adalah bagian path yang dimulai dengan
/pertama setelah nama domain dan tidak termasuk nama domain maupun parameter permintaan. Contoh, untuk permintaanhttps://example.com/path/file.html?key=value, nilai URI yang sebenarnya dicocokkan adalah/path/file.html. Nilai pencocokan harus dimulai dengan/.Format pencocokan ekstensi file: Saat mengonfigurasi pencocokan ekstensi file, nilai pencocokan harus menyertakan titik (
.). Contoh, untuk mencocokkan file.txt, masukkan.txtbukantxt; jika tidak, pencocokan mungkin gagal.Contoh penggunaan wildcard: Pencocokan URI dan ekstensi file mendukung wildcard
?(mencocokkan satu karakter apa pun) dan*(mencocokkan sejumlah karakter apa pun). Contoh umum:/*.pdf: mencocokkan semua file PDF di direktori root./api/*/data: mencocokkan path/api/yang mengandungdatadi subpath apa pun..??: mencocokkan semua ekstensi file dua karakter, seperti.jsdan.ts.
Mode verifikasi alamat IP
Mesin aturan menyediakan dua mode verifikasi alamat IP. Mode yang dipilih memengaruhi cara POP CDN mengidentifikasi alamat IP klien:
POP connection IP: Mode ini mencocokkan alamat IP yang digunakan klien untuk terhubung ke POP CDN . Jika traffic antara klien dan POP CDN melewati server proxy, POP connection IP adalah alamat IP server proxy tersebut.
XFF IP: Mode ini mencocokkan alamat IP paling kiri dalam header permintaan x-forwarded-for. Baik dengan atau tanpa server proxy antara klien dan POP CDN , XFF IP selalu merupakan alamat IP asli klien.
Pilihan mode verifikasi tergantung pada apakah permintaan klien melewati server proxy sebelum mencapai POP CDN .
Perlu diperhatikan bahwa lokasi di POP CDN tempat fitur yang merujuk kondisi aturan diterapkan juga memengaruhi mode verifikasi alamat IP yang harus Anda pilih. Untuk fitur origin-fetch yang berlaku di POP L2, POP L1 yang dilewati permintaan pengguna setara dengan server proxy perantara.
Contoh: Asumsikan alamat IP asli klien adalah 10.10.10.10, dan alamat IP proxy adalah 192.168.0.1.
Tanpa server proxy:
Nilai header permintaan x-forwarded-for adalah
10.10.10.10.Alamat IP asli klien (IP paling kiri dalam header x-forwarded-for) = alamat IP yang digunakan untuk membuat koneksi antara klien dan POP CDN =
10.10.10.10.
Dengan server proxy:
Nilai header permintaan x-forwarded-for adalah
10.10.10.10,192.168.0.1.Alamat IP asli klien (IP paling kiri dalam header x-forwarded-for) =
10.10.10.10.Alamat IP yang digunakan untuk membuat koneksi antara klien dan POP CDN = alamat IP server proxy =
192.168.0.1.Alamat IP asli klien (IP paling kiri dalam header x-forwarded-for) ≠ alamat IP yang digunakan untuk membuat koneksi antara klien dan POP CDN .
Di wilayah tertentu, sejumlah kecil penyedia layanan Internet (ISP) mungkin menetapkan alamat IP pribadi kepada pengguna akhir. Akibatnya, node CDN menerima alamat IP pribadi pengguna.
Alamat IP pribadi berada dalam tiga rentang berikut:
Alamat IP pribadi Kelas A:
10.0.0.0–10.255.255.255. Subnet mask:10.0.0.0/8.Alamat IP pribadi Kelas B:
172.16.0.0–172.31.255.255. Subnet mask:172.16.0.0/12.Alamat IP pribadi Kelas C:
192.168.0.0–192.168.255.255. Subnet mask:192.168.0.0/16.
Operator pencocokan (matchOperator)
Operator | Parameter konfigurasi yang sesuai di fungsi condition untuk konfigurasi nama domain | Deskripsi |
equal to | matchOperator diatur ke equals. | Kondisi terpenuhi hanya jika variabel benar-benar sama atau tidak sama dengan nilai pencocokan yang ditentukan. |
not equal to | matchOperator diatur ke equals dan parameter negate diatur ke true. | |
exists | matchOperator diatur ke exists. | Kondisi terpenuhi tergantung pada apakah variabel yang ditentukan ada dalam permintaan. |
not exists | matchOperator diatur ke exists dan parameter negate diatur ke true. | |
contains any | matchOperator diatur ke contains. | Kondisi terpenuhi jika variabel mengandung (atau tidak mengandung) salah satu dari nilai pencocokan yang ditentukan. Maksimal 32 nilai pencocokan didukung. Dua jenis pencocokan konten didukung:
|
does not contain any | matchOperator diatur ke contains dan parameter negate diatur ke true. | |
greater than | matchOperator diatur ke gt. | Artinya, |
less than | matchOperator diatur ke lt. | Artinya, |
greater than or equal to | matchOperator diatur ke ge. | Artinya, |
less than or equal to | matchOperator diatur ke le. | Artinya, |
regular expression match | matchOperator diatur ke regex. | Mencocokkan variabel terhadap ekspresi reguler. Catatan Jika Anda mengonfigurasi aturan di konsol atau menggunakan OpenAPI, Anda tidak dapat menggunakan operator ekspresi reguler ini. Namun, Anda dapat melihat konfigurasi yang sudah ada. Untuk menggunakan operator pencocokan terkait ekspresi reguler, |
regular expression mismatch | matchOperator diatur ke regex dan parameter negate diatur ke true. |
Wildcard
Wildcard | Deskripsi | Contoh pencocokan path |
| Mencocokkan satu karakter apa pun. |
|
| Mencocokkan nol atau lebih karakter. |
|
Fitur yang mendukung kondisi aturan
Kategori | Fitur |
Konfigurasi dasar | |
Pengaturan cache | |
Pengaturan origin | |
Kontrol akses | |
Optimasi performa | |
Pengaturan video | |
Pembatasan trafik |
Manajemen konfigurasi
Lokasi melihat aksi eksekusi: Halaman Rules Engine hanya mendefinisikan kondisi aturan. Halaman ini tidak mengonfigurasi aksi eksekusi secara langsung. Anda harus melihat dan mengelola aksi eksekusi spesifik—seperti masa kedaluwarsa cache, penulisan ulang URL, dan pembatasan laju—di halaman fitur yang merujuk aturan tersebut. Misalnya, jika konfigurasi masa kedaluwarsa cache merujuk kondisi aturan, Anda harus melihat dan memodifikasinya di Pengaturan Cache > Masa Kedaluwarsa Cache.
Remote Authentication tidak mendukung kondisi aturan: Fitur otentikasi jarak jauh tidak dapat merujuk kondisi aturan. Anda tidak dapat menggunakan mesin aturan untuk mengontrol cakupan penerapan otentikasi jarak jauh.
Batas waktu otentikasi: Remote Authentication memiliki batas Timeout maksimal 3000 milidetik (3 detik). Nilai default adalah 500 milidetik. 3000 milidetik adalah nilai maksimum yang didukung sistem.
Kasus penggunaan lanjutan
Anda dapat menerapkan konfigurasi lanjutan berikut dengan Mesin Aturan:
Pembatasan laju diferensial: Untuk membatasi laju beberapa permintaan tetapi tidak yang lain (misalnya, membatasi laju URL dengan parameter otentikasi tetapi tidak URL lainnya), atau mengonfigurasi batas laju cadangan, buat kondisi aturan yang membedakan karakteristik permintaan di modul Rules Engine. Kemudian, di Pembatasan Laju untuk Permintaan Tunggal, rujuk kondisi aturan berbeda tersebut dan tetapkan batas laju berbeda untuk masing-masing.
Routing origin canary berbasis IP: Untuk menerapkan rilis canary berdasarkan alamat IP klien atau mengarahkan permintaan dari IP tertentu ke origin berbeda, buat kondisi pencocokan IP di mesin aturan. Kemudian, rujuk kondisi aturan tersebut di bawah "Origin Kondisional" dan tentukan alamat origin berbeda.
Rekomendasi arsitektur origin campuran: Jika Anda perlu menggunakan WAF dan OSS sebagai origin, jangan langsung mengonfigurasi beberapa origin utama. Sebagai gantinya, gunakan mesin aturan untuk membuat kondisi pencocokan berdasarkan path URL, lalu secara dinamis tentukan alamat origin untuk setiap path di bawah "Origin Kondisional" guna menghindari konflik origin antar beberapa origin.
Prosedur
-
Masuk ke Konsol CDN.
-
Di panel navigasi kiri, klik Domain Names.
-
Di halaman Domain Names, temukan nama domain target dan klik Manage di kolom Actions.
Di bilah navigasi kiri untuk nama domain tertentu, klik Rules Engine.
Klik Add Rule.
Di halaman Add Rule, atur Rule Name dan Rule Content.
Klik Submit untuk menyelesaikan konfigurasi.
Skenario konfigurasi khas
Bagian berikut menjelaskan cara menerapkan tiga skenario konfigurasi umum.
Skenario 1: Kontrol akses daftar putih IP dan pengalihan non-daftar putih
Kebutuhan: Izinkan hanya alamat IP tertentu untuk mengakses website dan arahkan otomatis semua alamat IP lainnya ke halaman maintenance.
Pendekatan konfigurasi:
Di modul Rules Engine, buat kondisi aturan. Atur jenis pencocokan ke Alamat IP klien, atur operator pencocokan ke does not contain any, dan masukkan alamat IP daftar putih sebagai nilai pencocokan.
Di bawah "Konfigurasi cache" > "Penulisan ulang URL akses", rujuk kondisi aturan ini dan arahkan permintaan yang sesuai (yaitu, permintaan dari alamat IP non-daftar putih) ke URL halaman maintenance yang ditentukan, seperti halaman HTML yang di-host di OSS.
Catatan:
Jika permintaan dari alamat IP non-daftar putih mengembalikan 403 alih-alih dialihkan, periksa apakah beberapa origin OSS menyebabkan konflik origin. Kami merekomendasikan agar setiap nama domain CDN dipetakan hanya ke satu origin OSS utama.
Pastikan URL halaman maintenance dapat diakses publik dan tidak diblokir oleh aturan kontrol akses lainnya.
Perilaku default: Saat aturan daftar putih IP dikaitkan dengan kondisi pencocokan path URI, pemeriksaan daftar putih IP hanya berlaku untuk permintaan yang sesuai path URI tersebut; permintaan yang tidak sesuai diizinkan secara default. Untuk menerapkan kontrol akses IP ke semua path, gunakan EdgeScript untuk menulis logika kustom.
Skenario 2: Perlindungan Referer dan kontrol ekstensi file
Kebutuhan: Batasi akses Referer untuk file dengan ekstensi tertentu, sekaligus mengizinkan permintaan dengan Referer kosong untuk file dengan ekstensi tersebut.
Pendekatan konfigurasi:
Di modul Rules Engine, buat kondisi aturan. Atur jenis pencocokan ke Ekstensi file, atur operator pencocokan ke does not contain any, dan masukkan ekstensi yang ingin Anda bebaskan, seperti
.pdf, sebagai nilai pencocokan.Di bawah "Kontrol akses" > "Perlindungan hotlink Referer", rujuk kondisi aturan ini. Permintaan untuk ekstensi selain yang ditentukan dibatasi oleh daftar putih atau daftar hitam Referer, sedangkan permintaan dengan Referer kosong untuk ekstensi yang ditentukan dibebaskan.
Skenario 3: Blokir akses ke file non-gambar dan non-video
Kebutuhan: Bucket OSS tersedia melalui akselerasi CDN. Akses ke file non-media seperti .html melalui URL berbahaya yang dibuat harus diblokir.
Pendekatan konfigurasi:
Di modul Rules Engine, buat kondisi aturan. Atur jenis pencocokan ke Ekstensi file, atur operator pencocokan ke contains any, dan masukkan
.html,.htm,.php,.asp,.jspsebagai nilai pencocokan.Tambahkan kondisi aturan dengan mengatur Match Type ke "Client IP", Match Operator ke "Does not contain any", dan Match Value ke alamat IP allowlist.
Di bawah "Kontrol akses", rujuk kondisi aturan ini dan kembalikan 403 untuk permintaan yang sesuai: permintaan dari alamat IP non-daftar putih untuk file yang bukan format gambar atau video yang ditentukan.
Catatan (pembatasan unggah):
Mesin aturan CDN hanya membatasi akses; tidak dapat mengontrol unggahan. Untuk membatasi jenis file saat unggah, gunakan API OSS PostObject dan konfigurasikan Kebijakan untuk membatasi jenis file. Misalnya, mengatur starts-with $Content-Type image/ menolak unggahan file non-gambar seperti .html. API OSS PutObject tidak memeriksa jenis file dan tidak dapat memblokir file non-media saat unggah.