Fitur asal bersyarat menggunakan Mesin aturan untuk menyaring permintaan pengguna berdasarkan kriteria tertentu, seperti header permintaan, parameter string kueri, path, atau alamat IP klien. CDN mengarahkan permintaan yang sesuai dengan kriteria tersebut ke alamat origin tertentu. Anda dapat menambahkan beberapa konfigurasi untuk mengarahkan permintaan ke origin berbeda berdasarkan kondisi yang berbeda.
Prasyarat
Sebelum mengonfigurasi asal bersyarat, Anda harus membuat Kondisi Aturan di Mesin aturan.
Catatan penggunaan
Konflik fitur: Fitur asal bersyarat dan asal lanjutan saling eksklusif. Anda hanya dapat mengaktifkan salah satu.
Dukungan wildcard: Di Mesin aturan, nilai pencocokan URI mendukung wildcard
*(mencocokkan sejumlah karakter apa pun) dan?(mencocokkan satu karakter apa pun). Pencocokan path di fitur asal lanjutan hanya mendukung nilai eksak, bukan wildcard.Prioritas aturan dan urutan pencocokan: Asal bersyarat dievaluasi berdasarkan prioritas Kondisi Aturan terkait di Mesin aturan, bukan berdasarkan urutan konfigurasi asal bersyarat. Ketika suatu permintaan cocok dengan suatu aturan, evaluasi berhenti. Prioritas aturan di Mesin aturan ditentukan oleh urutan pembuatan: aturan yang dibuat lebih awal memiliki prioritas lebih tinggi. Untuk menyesuaikan prioritas pencocokan, Anda harus menghapus dan membuat ulang aturan dalam urutan yang diinginkan.
Tips konfigurasi multi-path: Saat membuat aturan untuk "menyertakan" atau "mengecualikan" suatu path, Anda dapat memasukkan beberapa path (dalam beberapa baris atau sebagai beberapa nilai) di bidang nilai pencocokan satu aturan untuk menyederhanakan konfigurasi Anda.
Batas aturan: Jumlah Kondisi Aturan yang dapat dirujuk oleh asal bersyarat tunduk pada batas global di Mesin aturan. Untuk satu domain, jumlah total referensi ke Kondisi Aturan di seluruh fitur, termasuk asal bersyarat, asal lanjutan, dan perlindungan hotlink berbasis Referer, tidak boleh melebihi lima. Dalam skenario multi-origin kompleks, melebihi batas ini menyebabkan konfigurasi gagal. Kami menyarankan agar Anda merencanakan penggunaan aturan secara hati-hati atau menggunakan domain terpisah untuk akselerasi jika Anda memiliki banyak origin.
Pertimbangan untuk origin OSS
Jika origin adalah bucket OSS, Anda harus menambahkan alamatnya di bawah Domain Names > Basics > Origin Information dan mengatur tipe origin ke OSS Domain. Hal ini memungkinkan CDN melakukan otentikasi dengan benar terhadap OSS.
Skenario multi-OSS origin: Saat mengonfigurasi beberapa origin OSS, Anda harus mengonfigurasi origin Host spesifik untuk masing-masing. Nilai Host harus persis sesuai dengan domain bucket OSS terkait, seperti
dev-3mir.oss-cn-guangzhou.aliyuncs.com.Jika origin Host tidak dikonfigurasi dengan benar atau Anda mengandalkan origin Host default, permintaan mungkin diarahkan ke bucket yang salah. Hal ini dapat menyebabkan error 403 SignatureDoesNotMatch atau 404 Not Found. Anda harus secara eksplisit mengikat setiap aturan asal bersyarat, termasuk aturan pencocokan dan aturan fallback, ke origin dan origin Host-nya masing-masing. Saat mengonfigurasi beberapa origin, kami menyarankan agar Anda mengatur bobot yang sama untuk origin dasar dan membuat Kondisi Aturan terpisah untuk setiap asal bersyarat guna memastikan perutean yang dapat diprediksi.
Perbandingan tipe origin
Baik asal bersyarat maupun asal lanjutan dapat mereferensikan Kondisi Aturan dari Mesin aturan untuk membuat kebijakan perutean origin yang fleksibel. CDN secara otomatis memilih origin jika permintaan sesuai dengan Kondisi Aturan:
Tipe Asal | Kondisi pemicu |
asal bersyarat | Permintaan sesuai dengan Kondisi Aturan yang dirujuk oleh asal bersyarat. |
asal lanjutan | Permintaan sesuai dengan Kondisi Aturan yang dirujuk oleh asal lanjutan. |
asal dasar | Permintaan tidak sesuai dengan aturan asal bersyarat atau asal lanjutan mana pun (fallback default). |
Prosedur
-
Masuk 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 bagian Origin Information, klik Conditional Origin di samping Expand.
Klik Add Conditional Origin.
Atur Rule Condition.
Jika Anda menambahkan konfigurasi untuk pertama kali atau perlu memodifikasi Kondisi Aturan yang sudah ada, klik Conditional Origin di kotak dialog Rules Engine. Tindakan ini akan membuka mesin aturan tempat Anda dapat menambahkan atau memodifikasi konfigurasi. Untuk informasi selengkapnya, lihat mesin aturan.
Jika Anda memiliki Kondisi Aturan yang sudah ada, pilih dari daftar drop-down Rule Condition.
Di bidang Origin Address, masukkan alamat origin. Alamat origin dapat berupa alamat IP, nama domain, bucket OSS, atau titik akhir Function Compute (FC).
Klik OK untuk menyelesaikan konfigurasi.
Contoh: Mengarahkan permintaan /api/* ke FC
Fitur asal lanjutan hanya mendukung pencocokan nilai eksak dan tidak mendukung wildcard atau ekspresi reguler. Untuk menerapkan perutean origin berbasis path, gunakan asal bersyarat dengan Mesin aturan. Dengan menggabungkan fitur asal bersyarat, Mesin aturan, dan Penulisan ulang URL, Anda dapat mengarahkan permintaan untuk path /api/* ke origin Function Compute (FC), sedangkan semua permintaan lainnya diarahkan secara default ke origin OSS.
Buat aturan di Mesin aturan
Navigasi ke Domain Names, temukan domain target, dan buka halaman Rules Engine.
Klik Add Rule dan konfigurasikan kondisi aturan seperti pada tabel berikut:
Parameter
Nilai
Rule Name
Masukkan nama kustom untuk memudahkan identifikasi, misalnya
api-to-fc.Match type
URI
Match operator
Include Any
Match value
*/api/*Case sensitive
Case-insensitive (default)
PentingJangan tambahkan kondisi hostname. Kondisi hostname mencocokkan domain permintaan, bukan origin. Menambahkan kondisi hostname dapat mencegah aturan mencocokkan path setelah Penulisan ulang URL.
Klik Submit untuk menyimpan aturan.
Konfigurasikan asal bersyarat
Di panel navigasi kiri, buka Domain Names > Basics. Di bagian Origin Information, klik ikon expand di samping Conditional Origin.
Klik Add Conditional Origin dan konfigurasikan parameter di kotak dialog seperti pada tabel berikut:
Parameter
Nilai
Rule Condition
Dari daftar drop-down, pilih aturan yang Anda buat di Langkah 1, misalnya
api-to-fc.Origin Address
Masukkan alamat origin Function Compute (FC) Anda.
Klik OK untuk menyimpan konfigurasi.
Konfigurasikan Host Asal
Dalam konfigurasi origin, atur origin Host untuk aturan ini ke nama domain FC guna memastikan bahwa permintaan ke origin menggunakan header Host yang benar.
Konfigurasikan Penulisan ulang URL (opsional)
Jika Anda perlu menulis ulang path /api/ menjadi path /print/api/ di origin FC Anda, Anda juga harus menggunakan fitur Penulisan ulang URL di CDN:
Di Mesin aturan, konfigurasikan aturan Penulisan ulang URL untuk menulis ulang
/api/menjadi/print/api/.Pastikan bahwa kondisi pencocokan URI di Mesin aturan dari Langkah 1 mencakup path yang ditulis ulang. Misalnya, gunakan
*/api/*atau cocokkan path spesifik/print/api/*.
Setelah menyelesaikan konfigurasi ini, CDN mengarahkan permintaan antarmuka depan ke /api/* ke layanan FC, sedangkan permintaan lainnya diarahkan ke origin OSS secara default.
Contoh: Perutean berbasis Referer
Contoh berikut menunjukkan cara mengarahkan permintaan ke origin berbeda berdasarkan header Referer. Hal ini berguna untuk perlindungan hotlink atau untuk mengontrol akses berdasarkan sumber permintaan.
Buat kondisi aturan referer
Masuk ke CDN console, pilih domain target, dan navigasi ke Domain Names > Rules Engine.
Klik Add Rule dan konfigurasikan parameter seperti pada tabel berikut:
Parameter
Nilai
Rule Name
Masukkan nama deskriptif, misalnya
referer-routing.Match type
Referer
Match operator
Include Any
Match value
example.com. Nilai ini menentukan domain referer. Anda dapat menambahkan beberapa domain.Case sensitive
Case-insensitive
Klik Submit untuk menyimpan aturan.
Konfigurasikan asal bersyarat
Di panel navigasi kiri halaman manajemen domain, buka tab Basics. Di bagian Origin Information, klik ikon expand di samping Conditional Origin.
Klik Add Conditional Origin dan konfigurasikan parameter di kotak dialog seperti pada tabel berikut:
Parameter
Nilai
Rule Condition
Dari daftar drop-down, pilih
referer-routing.Origin Address
Masukkan alamat origin untuk sumber Referer ini.
Klik OK untuk menyimpan konfigurasi.
FAQ
Mengapa permintaan diarahkan salah atau gagal?
Periksa hal-hal berikut:
Periksa kondisi pencocokan aturan: Verifikasi bahwa parameter permintaan, seperti URI dan header, sesuai dengan aturan yang Anda konfigurasi. Perhatikan bahwa pencocokan path URI memerlukan wildcard, seperti
/api/*. Wildcard*mencocokkan nol atau lebih karakter, dan?mencocokkan satu karakter apa pun. Jika nilai pencocokan tidak mengandung wildcard, pencocokan mungkin gagal.Periksa konfigurasi origin Host: Jika origin Anda adalah bucket OSS, pastikan Anda telah menentukan origin Host untuk setiap asal bersyarat dan nilainya persis sesuai dengan domain bucket OSS terkait. Konfigurasi origin Host yang salah menyebabkan otentikasi signature OSS gagal, yang menghasilkan error 403.
Periksa alamat origin: Pastikan alamat origin benar dan layanan origin berjalan dengan baik. Anda dapat memverifikasi ketersediaan origin dengan mengakses langsung domain bucket OSS.
Periksa status cache: Setelah memodifikasi konfigurasi, node tepi CDN mungkin masih menyajikan konten yang di-cache berdasarkan konfigurasi lama. Lakukan refresh cache untuk memastikan konfigurasi baru berlaku segera. Untuk aturan asal bersyarat berbasis cookie, aturan tidak akan dipicu jika akun uji tidak login (permintaan tidak membawa cookie) atau cache belum dihapus. Saat menguji, kami menyarankan agar Anda menggunakan perintah
curl -v -H "Cookie: key=value"untuk mensimulasikan permintaan dengan cookie guna memverifikasi bahwa aturan cocok dengan benar.Periksa izin OSS: Jika permintaan origin ke bucket OSS mengembalikan error 403 dengan pesan "You have no right to access this object", periksa izin Access Control List (ACL) bucket OSS. Jika bucket bersifat pribadi, Anda harus mengatur izinnya ke public-read atau mengonfigurasi otentikasi untuk permintaan origin di CDN.
Periksa jumlah referensi Kondisi Aturan: Pastikan jumlah total referensi Kondisi Aturan untuk domain tidak melebihi batas lima. Jika batas terlampaui, konfigurasi baru tidak berlaku.
Perutean berbasis geografi
Anda dapat menggunakan asal bersyarat dengan Mesin aturan untuk mengarahkan traffic berdasarkan geografi. Konfigurasikan pengaturan sebagai berikut:
Buat Kondisi Aturan geografis: Masuk ke CDN console, pilih domain target, navigasi ke Domain Names > Rules Engine, dan klik Add Rule.
Konfigurasikan aturan Tiongkok daratan: Atur Match type ke User Geographic Location, atur Match value ke Chinese mainland, atur hubungan logis ke OR, dan simpan aturan.
Konfigurasikan aturan luar negeri (fallback): Atur Match type ke User Geographic Location, atur Match value ke regions outside the Chinese mainland, dan simpan aturan.
Konfigurasikan asal bersyarat: Di bagian Origin Information, kaitkan masing-masing aturan dengan origin-nya:
Kaitkan aturan Tiongkok daratan dengan origin domestik, seperti bucket OSS atau server domestik.
Kaitkan aturan regions outside the Chinese mainland (luar negeri) dengan origin luar negeri, seperti bucket OSS atau server luar negeri.
Konfigurasikan origin Host: Untuk setiap origin, konfigurasikan origin Host spesifik untuk memastikan bahwa nilai Host sesuai dengan domain origin masing-masing.
Rekomendasi optimasi lintas batas
Jika pengguna di wilayah luar Tiongkok daratan mengalami latensi tinggi atau koneksi tidak stabil saat mengakses origin di Tiongkok daratan, kami menyarankan menggunakan OSS Transfer Acceleration untuk mengoptimalkan koneksi origin lintas batas:
Asal bersyarat untuk pengguna di Tiongkok daratan melakukan permintaan ke domain OSS publik biasa, seperti
bucket.oss-cn-hangzhou.aliyuncs.com.Asal bersyarat untuk pengguna di wilayah luar Tiongkok daratan melakukan permintaan ke domain OSS Transfer Acceleration, seperti
bucket.oss-accelerate.aliyuncs.com.
OSS Transfer Acceleration menggunakan node akselerasi yang didistribusikan secara global untuk mengoptimalkan koneksi lintas batas dan secara efektif mengurangi latensi permintaan origin. Untuk informasi selengkapnya tentang OSS Transfer Acceleration, lihat Akses OSS menggunakan Transfer Acceleration.
Waktu propagasi dan refresh cache
Waktu propagasi: Setelah memodifikasi konfigurasi asal bersyarat, perubahan biasanya memerlukan waktu 5 hingga 10 menit untuk dipropagasi secara global. Konfigurasi CDN diterapkan secara bertahap ke semua node tepi. Selama periode ini, konfigurasi lama dan baru mungkin berdampingan.
Rekomendasi refresh cache:
Setelah konfigurasi berlaku, jika node tepi CDN telah meng-cache konten yang diambil berdasarkan konfigurasi lama, lakukan refresh cache untuk memastikan pengguna dapat mengakses konten terbaru. Anda dapat merefresh cache secara manual di CDN console atau memanggil API
RefreshObjectCachesuntuk merefresh objek secara batch.Jika perubahan konfigurasi hanya memengaruhi aturan permintaan origin dan bukan konten yang di-cache itu sendiri, refresh cache biasanya tidak diperlukan karena node tepi CDN mengevaluasi aturan permintaan origin secara real time.
Jika Anda mengonfigurasi asal bersyarat untuk pertama kali, kami menyarankan agar Anda menggunakan perintah curl -I untuk menguji hasil permintaan origin untuk path berbeda setelah konfigurasi selesai guna memastikan konfigurasi telah berlaku.
Otentikasi untuk origin OSS pribadi
Saat bucket OSS Anda bersifat pribadi, CDN memerlukan otentikasi yang tepat untuk mengambil sumber daya. Berikan akses CDN ke bucket OSS pribadi Anda dengan menggunakan Service-Linked Role. Untuk petunjuk detail, lihat Aktifkan CDN untuk mengakses bucket OSS pribadi. CDN menggunakan Service-Linked Role untuk mendapatkan izin akses ke OSS. Setelah memberikan otorisasi, CDN secara otomatis menyertakan informasi otentikasi saat mengambil konten dari bucket pribadi, tanpa perlu konfigurasi manual.
Pemecahan masalah error 502 dengan GA
Jika Anda mengalami error 502 saat menggunakan CDN dengan Global Accelerator (GA) dan asal bersyarat, periksa hal berikut:
Periksa konfigurasi origin Host: Saat menggunakan asal bersyarat, Anda harus menghapus origin Host default dan mengonfigurasi origin Host spesifik sebagai gantinya. Kami menyarankan agar Anda mengonfigurasi dua aturan untuk menangani traffic dari Tiongkok daratan dan wilayah luar Tiongkok daratan secara terpisah: satu aturan yang mencocokkan traffic dari Tiongkok daratan, dengan origin diatur ke alamat IP server di Tiongkok daratan dan origin Host spesifik diatur ke domain akselerasi CDN, serta aturan lain yang mencocokkan traffic dari wilayah luar Tiongkok daratan, dengan origin diatur ke domain origin GA dan origin Host spesifik diatur ke domain origin GA.
Periksa konsistensi protokol dan port: Pastikan port listener GA sesuai dengan port permintaan origin CDN. Jika GA menggunakan Port HTTPS 443, kami menyarankan agar CDN juga mengambil konten dari GA melalui port 443. Jika origin tidak dikonfigurasi dengan sertifikat HTTPS, Anda dapat membuat listener pada Port HTTP 80 di GA dan mengonfigurasi CDN untuk mengambil konten dari GA melalui Port HTTP 80. Hal ini menghindari error 502 yang disebabkan oleh ketidaksesuaian protokol atau port.
Solusi alternatif: Jika konfigurasi di atas terlalu kompleks, pertimbangkan untuk migrasi ke Edge Security Acceleration (ESA). ESA mendukung konfigurasi asal bersyarat yang lebih fleksibel dan konfigurasi port permintaan origin independen.
Dampak terhadap perlindungan hotlink
Tidak. Kebijakan perlindungan hotlink, termasuk perlindungan hotlink berbasis Referer dan otentikasi URL, berlaku secara global untuk seluruh domain CDN dan tidak terpengaruh oleh konfigurasi asal bersyarat. Setelah mengonfigurasi asal bersyarat, fitur perlindungan hotlink tetap berfungsi sebagaimana mestinya berdasarkan kebijakan yang ada.
Konfigurasi path server origin
Tidak. Anda hanya perlu mengonfigurasi nama domain di origin dan tidak perlu menambahkan aturan path URL. CDN menentukan origin untuk permintaan berdasarkan URL lengkap permintaan:
Jika permintaan memenuhi aturan asal bersyarat, permintaan diarahkan ke origin yang terkait dengan aturan tersebut.
Jika permintaan tidak memenuhi aturan asal bersyarat mana pun dan origin dasar tersedia, permintaan diarahkan ke origin dasar.
Anda hanya perlu menambahkan domain origin yang sesuai di CDN console dan mengonfigurasi origin Host spesifik, yaitu domain origin, untuk setiap asal bersyarat. Anda tidak perlu mengonfigurasi aturan pencocokan URI tambahan di origin.