Gunakan antarmuka grafis Mesin Aturan untuk menentukan aturan kondisional berdasarkan parameter permintaan dan mengontrol secara tepat kapan kebijakan konfigurasi DCDN diterapkan.
Catatan: Saat fitur ini mereferensikan kondisi aturan dari Mesin Aturan, urutan eksekusi mengikuti prioritas kondisi aturan yang dikonfigurasi di Mesin Aturan, BUKAN urutan prioritas konfigurasi fitur ini sendiri.
Latar Belakang
Konsol Alibaba Cloud DCDN menyediakan fitur dasar seperti mengonfigurasi waktu hidup (TTL) dan menulis ulang parameter pengambilan asal. Fitur-fitur tersebut mencakup sebagian besar kasus penggunaan tetapi tidak dapat memenuhi semua kebutuhan. Misalnya, Anda mungkin perlu mengarahkan permintaan yang berisi path /example ke origin tertentu. Untuk skenario seperti ini, kombinasikan fitur dasar dengan Mesin Aturan guna mendapatkan konfigurasi yang lebih fleksibel. Alibaba Cloud DCDN juga menawarkan EdgeRoutine untuk kustomisasi tingkat lanjut.
|
Kemampuan konfigurasi |
Fitur dasar |
Fitur dasar + mesin aturan |
EdgeRoutine |
|
Implementasi |
Konfigurasi tujuan umum |
Konfigurasi kustom fleksibel |
Konfigurasi kustom sangat fleksibel |
|
Skenario |
Kasus penggunaan umum |
Kebutuhan kustom tingkat lanjut |
Kebutuhan sepenuhnya kustom |
|
Tingkat kesulitan |
Rendah |
Sedang |
Tinggi |
|
Fleksibilitas konfigurasi |
Rendah |
Sedang |
Tinggi |
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 menggunakan OpenAPI. Namun, Anda dapat melihat konfigurasi yang sudah ada yang menggunakan operator-operator tersebut. Untuk menggunakan operator ini, gunakan ESA.
Satu kondisi aturan dapat direferensikan 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 keluar, mereferensikan kondisi aturan, urutan eksekusi ditentukan oleh prioritas kondisi tersebut, bukan urutan konfigurasi fitur tersebut.
Di antara batasan-batasan di atas, batas maksimum 50 kondisi aturan, 20 sub-aturan, dan tumpukan tiga level merupakan batas keras yang tidak dapat ditingkatkan berdasarkan permintaan. Jumlah total maksimum referensi ke kondisi aturan di seluruh fitur dalam satu nama domain yang dipercepat, yang secara default adalah 5, dapat ditingkatkan berdasarkan permintaan.
Untuk meningkatkan jumlah total maksimum referensi ke kondisi aturan untuk satu nama domain yang dipercepat, ajukan tiket dan berikan informasi berikut: nama domain yang dipercepat yang ingin Anda tingkatkan batasnya, jumlah target referensi, dan deskripsi skenario bisnis Anda.
Jika Anda menambahkan nama domain yang dipercepat lainnya nanti, Anda harus mengajukan tiket secara terpisah untuk domain tersebut guna meningkatkan jumlah referensi. Prosesnya sama seperti permintaan awal.
Tidak tersedia mekanisme untuk meningkatkan batas ini secara otomatis. Setelah Anda mengajukan tiket, permintaan akan diproses melalui tinjauan manual oleh tim backend.
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 izin IP klien yang besar, satukan beberapa alamat IP ke dalam blok CIDR (misalnya,
120.209.XXX.X/24) untuk menghemat kuota 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 menyatukan nilai-nilai serupa (misalnya,*Chrome*mencocokkan semua versi browser Chrome) atau gunakan EdgeScript untuk logika pencocokan yang lebih fleksibel.
Sintaksis kondisi aturan
Kondisi aturan menggabungkan satu atau beberapa ekspresi kondisional menggunakan operator logika. Bagian-bagian berikut menjelaskan sintaksis tersebut.
Operator logika
Operator logika mengevaluasi kondisi pada level yang sama, termasuk set kondisi bersarang. Operator yang didukung adalah and dan or.
and: Operator logika AND. Pencocokan berhasil hanya jika semua kondisi bernilai benar.or: Operator logika OR. Pencocokan berhasil jika minimal satu kondisi bernilai benar. Misalnya, Anda dapat mengonfigurasi beberapa kondisi aturan untuk header respons yang sama agar header tersebut ditambahkan dalam kondisi berbeda. Contoh: Jika URI berisi/path-aor URI berisi/path-b, sistem akan menambahkan header respons.
Parameter ekspresi kondisional
Ekspresi kondisional, sebagai unit paling granular dalam suatu aturan, mencakup parameter berikut:
Parameter | Fungsi untuk konfigurasi nama domain parameter fungsi | 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 |
Objek pencocokan | MatchObject | Memperjelas 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 | Fungsi untuk konfigurasi nama domain parameter fungsi | Deskripsi | Objek pencocokan | Operator pencocokan | Nilai pencocokan | Sensitivitas huruf besar/kecil | Variabel Nginx |
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 dari permintaan klien. Urutan pencocokan: host di URL permintaan > host di header permintaan | Tidak berlaku |
| Host dari permintaan klien. Anda dapat memasukkan beberapa nilai. |
| $host atau $http_host |
Alamat IP klien | clientip | Alamat IP klien. IPv4 (misalnya, |
Catatan Untuk informasi selengkapnya mengenai IP koneksi POP dan IP XFF, lihat mode verifikasi alamat IP. |
| 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 IP koneksi POP dan IP XFF, lihat Mode verifikasi alamat IP. |
|
| Tidak berlaku | - |
Penyedia layanan Internet (ISP) | geolocation | ISP tempat alamat IP klien terdaftar. |
Catatan Untuk informasi lebih lanjut tentang IP koneksi POP dan IP XFF, lihat Mode verifikasi alamat IP. |
| 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 IP koneksi POP dan IP XFF, lihat Mode verifikasi alamat IP. |
| 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 | Header | Tidak berlaku |
| Anda dapat memilih nilai dari daftar drop-down atau memasukkan nilai User-Agent, seperti |
| $http_user_agent |
Bucket rentang | 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. Nilai ini tidak mencakup nama domain atau parameter permintaan. Untuk permintaanhttps://example.com/path/file.html?key=value, nilai yang dicocokkan adalah/path/file.html. Nilai pencocokan harus dimulai dengan/.Format pencocokan ekstensi file: Saat mengonfigurasi pencocokan ekstensi file, nilai pencocokan harus menyertakan titik (
.). Misalnya, untuk mencocokkan file.txt, masukkan.txt, bukantxt. Jika tidak, pencocokan mungkin gagal.Contoh penggunaan wildcard: Pencocokan URI dan ekstensi file mendukung wildcard
?(mencocokkan satu karakter) dan*(mencocokkan nol atau lebih karakter). Contoh umum:/*.pdf: Mencocokkan semua file PDF di direktori root./api/*/data: Mencocokkan pathdatadi subdirektori apa pun di bawah/api/..??: 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 node DCDN mengidentifikasi alamat IP klien:
IP koneksi POP: Mode ini mencocokkan alamat IP yang digunakan klien untuk terhubung ke node DCDN. Jika server proxy digunakan antara klien dan node DCDN, IP koneksi POP adalah alamat IP server proxy tersebut.
IP XFF: Mode ini mencocokkan alamat IP paling kiri dalam header permintaan
x-forwarded-for. IP XFF selalu merupakan alamat IP asli klien, terlepas dari apakah server proxy digunakan antara klien dan node DCDN.
Pilihan mode verifikasi bergantung pada apakah permintaan klien melewati server proxy sebelum mencapai node DCDN.
Perhatikan bahwa lokasi pada node DCDN tempat fitur diterapkan juga memengaruhi mode verifikasi alamat IP. Untuk fitur terkait pengaturan origin yang diterapkan pada node L2, node L1 yang dilewati permintaan dianggap sebagai server proxy perantara.
Contoh: Asumsikan alamat IP klien asli adalah 10.10.10.10 dan alamat IP server proxy adalah 192.168.0.1.
Tanpa server proxy:
Nilai header permintaan
x-forwarded-foradalah10.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 node DCDN =
10.10.10.10.
Dengan server proxy:
Nilai header permintaan
x-forwarded-foradalah10.10.10.10,192.168.0.1.Alamat IP klien asli (alamat IP paling kiri dalam header permintaan
x-forwarded-for) adalah10.10.10.10.IP koneksi klien ke node DCDN = IP server proxy =
192.168.0.1.Alamat IP klien asli (alamat IP pertama dari kiri dalam header x-forwarded-for) ≠ alamat IP koneksi klien ke node DCDN.
Beberapa penyedia layanan Internet (ISP) di wilayah tertentu mungkin memberikan alamat IP pribadi kepada pengguna akhir. Akibatnya, node mungkin menerima alamat IP pribadi pengguna.
Alamat IP pribadi terbagi dalam tiga rentang:
Alamat IP pribadi Kelas A: 10.0.0.0 hingga 10.255.255.255, subnet mask: 10.0.0.0/8
Alamat IP pribadi Kelas B: 172.16.0.0 hingga 172.31.255.255, subnet mask: 172.16.0.0/12
Alamat IP pribadi Kelas C: 192.168.0.0 hingga 192.168.255.255, subnet mask: 192.168.0.0/16
Operator pencocokan (matchOperator)
Operator | condition parameter fungsi | Deskripsi |
sama dengan |
| Kondisi terpenuhi hanya jika variabel benar-benar sama atau tidak sama dengan nilai pencocokan yang ditentukan. |
tidak sama dengan |
| |
ada |
| Kondisi terpenuhi tergantung pada apakah variabel yang ditentukan ada dalam permintaan. |
tidak ada |
| |
Berisi apa pun |
| Kondisi terpenuhi jika variabel berisi (atau tidak berisi) salah satu nilai pencocokan yang ditentukan. Maksimal 32 nilai pencocokan didukung. Mendukung dua jenis pencocokan ketercakupan:
|
tidak berisi salah satu |
| |
lebih besar dari |
| Artinya, |
lebih kecil dari |
| Artinya, |
lebih besar dari atau sama dengan |
| Artinya, |
lebih kecil dari atau sama dengan |
| Artinya, |
pencocokan ekspresi reguler |
| 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, ajukan tiket atau gunakan Edge Security Acceleration (ESA). |
ketidakcocokan ekspresi reguler |
|
Wildcard
Wildcard | Deskripsi | Contoh pencocokan path |
| Mencocokkan satu karakter apa pun. |
|
| Mencocokkan nol atau lebih karakter. |
|
Fitur yang mendukung kondisi aturan
|
Kategori fitur |
Nama fitur |
|
konfigurasi pengambilan asal |
|
|
header permintaan HTTP asal (Baru) |
|
|
header respons HTTP asal |
|
|
konfigurasi cache |
|
Prosedur
-
Masuk ke Konsol DCDN.
-
Di panel navigasi kiri, klik Domain Names.
-
Pada halaman Domain Names, temukan nama domain yang ingin Anda kelola dan klik Configure di kolom Actions.
-
Di panel navigasi kiri, klik Rule Engine.
-
Klik Create Rule.
-
Pada halaman Create Rule, atur Rule Name dan Rule Content.
-
Klik Submit.