All Products
Search
Document Center

Edge Security Acceleration:Konfigurasi nama domain

Last Updated:Jan 23, 2026

Anda dapat mengonfigurasi nama domain sebagai pemicu untuk mengakses Functions and Pages melalui jalur publik kustom. Edge Security Acceleration (ESA) menyediakan dua metode untuk mengarahkan permintaan HTTP atau HTTPS ke layanan Functions and Pages Anda: Custom Domains dan Routes.

Sebelum memulai

Baik Custom Domains maupun Routes memerlukan situs aktif dalam akun Anda.

Situs aktif adalah situs yang memiliki paket berlangganan dan terhubung menggunakan rekaman NS atau CNAME.

Pilih metode konfigurasi yang tepat

image

Atribut

Custom Domains

Routes

Tujuan utama

Meneruskan semua permintaan dari nama domain tertentu, seperti api.example.com, ke satu layanan Functions and Pages yang sama untuk diproses.

Hanya meneruskan permintaan yang sesuai dengan jalur yang telah ditentukan, seperti example.com/api/*, di bawah nama domain tertentu ke layanan Functions and Pages untuk diproses. Permintaan untuk jalur lain tidak terpengaruh.

Cakupan

Seluruh traffic di bawah nama domain

Bagian traffic yang sesuai dengan aturan

Metode konfigurasi

Sederhana, konfigurasi satu langkah

Fleksibel. Memerlukan konfigurasi aturan pencocokan.

Skenario penggunaan

  • Fungsi API Gateway khusus

  • Aplikasi rendering sisi server (SSR) lengkap

  • Otentikasi atau pencatatan log untuk jalur API tertentu

  • Pengujian A/B untuk jalur halaman tertentu

  • Intersepsi permintaan tertentu dan kembalikan konten kustom

Gunakan binding domain

Gunakan Custom Domains untuk mengarahkan seluruh traffic dari nama domain ke layanan Functions and Pages tertentu guna diproses.

Fitur binding domain memungkinkan Anda menghubungkan layanan Functions and Pages ke nama domain situs Anda. Setelah nama domain di-bind, Anda dapat menggunakannya untuk langsung mengakses layanan Functions and Pages. Nama domain yang di-bind ke layanan Functions and Pages harus termasuk dalam situs aktif. Setelah Anda mengonfigurasi binding di Konsol, ESA secara otomatis menambahkan rekaman DNS untuk nama domain tersebut ke situs yang bersangkutan.

image
  1. Masuk ke Konsol ESA. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik layanan Functions and Pages yang ingin dikonfigurasi.

  2. Klik tab Domain Names. Di bagian Custom Domains, klik Add Domain Name.image

  3. Masukkan nama domain yang ingin di-bind ke layanan Functions and Pages, misalnya pages.example.com. Setelah nama domain ditambahkan, rekaman DNS baru dibuat untuk situs yang bersangkutan.

    Catatan

    Nama domain baru mewarisi konfigurasi dari situsnya. Jika situs tidak memiliki sertifikat SSL/TLS, nama domain yang di-bind tidak dapat diakses melalui HTTPS. Untuk informasi lebih lanjut tentang cara mengaktifkan SSL/TLS untuk situs, lihat SSL/TLS.

    image

  4. Ikuti langkah-langkah sesuai jenis koneksi situs Anda:

    Situs terhubung menggunakan NS setup

    Jika situs Anda terhubung menggunakan NS record, tunggu hingga rekaman DNS berlaku. Proses ini memakan waktu sekitar satu menit. Kemudian, akses nama domain kustom yang baru di-bind, seperti pages.example.com, di browser untuk melihat hasilnya.image

    Situs terhubung menggunakan CNAME setup

    Jika situs Anda terhubung menggunakan CNAME record, Anda harus mengonfigurasi rekaman CNAME pada penyedia DNS Anda agar binding berlaku.

    1. Klik View DNS Records di sebelah kanan nama domain kustom yang baru ditambahkan.

      image

    2. Salin nilai CNAME yang dihasilkan oleh ESA untuk rekaman DNS baru tersebut.

      image

    3. Buka penyedia DNS Anda dan tambahkan rekaman CNAME ke pengaturan DNS nama domain Anda:

      • Host Record: Masukkan awalan nama domain kustom. Dalam contoh ini, masukkan pages.

      • Record Type: Pilih CNAME.

      • Record Value: Tempel nilai CNAME yang disalin pada langkah sebelumnya.

      image

    4. Kembali ke Konsol ESA. Tunggu hingga CNAME Status berubah menjadi Configured.imageKemudian, akses nama domain kustom yang baru di-bind, seperti pages.example.com, di browser untuk melihat hasilnya.image

Gunakan konfigurasi perutean

Anda dapat menggunakan perutean untuk meneruskan permintaan ke jalur URL tertentu ke layanan Functions and Pages. Metode ini memungkinkan shaping traffic dengan detail halus. Jika permintaan sesuai dengan pola URL yang dikonfigurasi, layanan Functions and Pages akan memprosesnya. Jika tidak, permintaan tersebut tetap mengikuti proses back-to-origin terakselerasi ESA. Misalnya, jika Anda mengonfigurasi aturan routing example.com/a* untuk situs example.com, semua permintaan ke jalur yang sesuai, seperti /a, /a1, dan /a2, diproses oleh layanan Functions and Pages. Permintaan ke jalur yang tidak sesuai, seperti /b, /c, dan /d, mengikuti proses back-to-origin atau caching standar.

image
  1. Masuk ke Konsol ESA. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik layanan Functions and Pages yang ingin dikonfigurasi.

  2. Klik tab Domain Names. Di bagian Routes, klik Add Route.image

  3. Masukkan Routing Name. Di daftar Select Site, pilih situs target, misalnya example.com.

  4. Pilih Routing Pattern:

    1. Basic mode: Pola ini mencocokkan permintaan hanya berdasarkan URL, yang mencakup hostname dan path. Misalnya, Anda dapat mengonfigurasi semua permintaan dengan awalan URL pages.example.com untuk diarahkan ke layanan Functions and Pages:image

    2. Custom Pattern: Pola ini cocok untuk skenario yang memerlukan pencocokan logis kompleks berdasarkan beberapa kondisi, seperti header permintaan, cookie, dan metode permintaan. Anda dapat menambahkan beberapa kondisi pencocokan dan menentukan hubungan logis antara kondisi tersebut sebagai "meet all" atau "meet any". Misalnya, Anda dapat mengonfigurasi aturan yang meneruskan permintaan ke layanan Functions and Pages hanya jika hostname sama dengan www.example.com dan header permintaan User-Agent mengandung Mobile:image

  5. Akses jalur routing yang sesuai di browser untuk melihat hasilnya.

    image

Penting
  • Jika Anda menggunakan basic mode dan memasukkan nama domain dengan awalan, seperti *.example.com atau www.example.com, catatan yang sesuai harus ada di bagian DNS Records di Konsol ESA. Anda juga dapat menambahkan catatan secara manual. Jika tidak, akses ke nama domain akan gagal.

  • Jika beberapa aturan routing dikonfigurasi, aturan tersebut dicocokkan secara berurutan dari atas ke bawah. Setelah ditemukan kecocokan, aturan berikutnya tidak diperiksa.

Aturan pencocokan

  • Konfigurasi routing harus mencakup hostname domain dan URI path. Oleh karena itu, Anda tidak dapat mengonfigurasi aturan routing yang hanya berisi URI path, seperti /path.

  • Anda dapat menambahkan karakter wildcard (*) di awal atau akhir konfigurasi routing untuk mencocokkan lebih banyak permintaan. Karakter wildcard * mencocokkan nol atau lebih karakter apa pun. Misalnya, example.com/* mencocokkan semua permintaan ke example.com.

  • Konfigurasi routing bersifat case-sensitive. Misalnya, example.com/a dan example.com/A adalah dua aturan routing yang berbeda.

  • Konfigurasi routing tidak mendukung karakter wildcard (*) di tengah path atau di parameter. Misalnya, example.com/*/path dan example.com/path?param=1 tidak diizinkan.

  • Jika permintaan sesuai dengan beberapa aturan routing, aturan pertama yang cocok dalam daftar yang berlaku.

Mode bypass

Setelah Anda mengaktifkan mode bypass untuk aturan routing, ketika permintaan sesuai dengan kebijakan routing, permintaan tersebut dikirim ke layanan Functions and Pages sebagai sub-permintaan. Proses keseluruhan mode bypass adalah sebagai berikut:

imageimage
  1. Klien mengirim permintaan ke Titik kehadiran (POP) ESA.

  2. Permintaan tersebut sesuai dengan kebijakan routing dan diteruskan ke layanan Functions and Pages untuk diproses. Di layanan Functions and Pages, Anda dapat melakukan operasi seperti logging dan otentikasi berdasarkan isi permintaan. Perhatikan bahwa saat mode bypass diaktifkan, badan permintaan tidak diteruskan ke layanan Functions and Pages.

  3. Jika respons dari layanan Functions and Pages memiliki kode status 200, permintaan dilanjutkan ke langkah pemrosesan berikutnya. Jika kode status bukan 200, ESA membatalkan permintaan dan mengembalikan kode status 403 ke klien.

  4. Permintaan kemudian dicocokkan dengan kebijakan berikutnya dan dilanjutkan melalui logika pencocokan cache atau back-to-origin terakselerasi ESA.

  5. Respons dari cache hit atau dari origin server dikembalikan ke POP ESA. Pada titik ini, respons tidak lagi diproses oleh layanan Functions and Pages.

  6. Respons diteruskan ke klien.

Skenario umum

  • Logging: Jika Anda ingin menghasilkan log untuk beberapa permintaan, Anda dapat meneruskan permintaan tersebut ke layanan Functions and Pages dalam mode bypass dan menentukan logika logging kustom dalam fungsi tersebut.

  • Otentikasi untuk unduhan file besar: Saat edge function meneruskan respons ke klien, fungsi tersebut mengonsumsi waktu CPU. Jika respons terlalu besar, hal ini dapat melebihi batas time slice CPU dan menimbulkan biaya tambahan. Anda dapat menggunakan mode bypass untuk melakukan otentikasi dengan layanan Functions and Pages guna menghindari masalah tersebut.

FAQ

Bagaimana cara memodifikasi kode untuk mode bypass?

Ambil Penandatanganan URL tipe A sebagai contoh:

  • Ubah fungsi entri dari async fetch() menjadi async bypass().

  • Nilai kembali fungsi harus dibuat menggunakan new ResponseBypass(). Konstruktor ini menerima dua parameter:

    • Parameter pertama adalah `true` atau `false`, yang menunjukkan apakah otentikasi berhasil atau gagal.

    • Jika parameter pertama adalah `false`, Anda dapat memberikan parameter kedua, `status`, untuk menentukan kode status yang dikembalikan ke klien.

Contoh kode untuk penandatanganan tipe A asli

import { createHash } from "node:crypto";

async function handleRequest(request) {
  const url = new URL(request.url);
  const path = url.pathname;
  const delta = 3600;

  const authKeyTypeA = url.searchParams.get('auth_key');

  const privateKey = 'your_secret_key'
  const currentTimestamp = Math.floor(Date.now() / 1000);

  if (!authKeyTypeA) {
    // Otentikasi gagal. Edge mengembalikan kode status 403 ke klien secara default.
    return new Response('Unauthorized', { 
      status: 401,
    });
  }

  const [timestamp, rand, uid, signature] = authKeyTypeA.split('-');

  if (currentTimestamp > parseInt(timestamp)+ delta) {
    // Otentikasi gagal. Edge mengembalikan kode status 403 ke klien secara default.
    return new Response('Link expired', {
      status: 403,
    });
  }

  const signString = [path, timestamp, rand, uid, privateKey].join('-');

  const md5 = createHash('md5').update(signString).digest('hex');

  if (md5 !== signature) {
  
    return new Response('Unauthorized', {
      status: 401
    });
  }

  // Jika resource berada di nama domain lain, kirim permintaan dan kembalikan respons.
  // const yourUrl = `https://your-dcdn-domain.com${path}${url.search}`
  // const cdnResponse = await fetch(yourUrl, request)
  // return new Response(cdnResponse.body, cdnResponse)

  // Dalam kebanyakan kasus, Anda cukup mengambil dari origin.
  return fetch(request.url)
}

export default {
  async fetch(request) {
    return handleRequest(request)
  }
}

Contoh kode untuk penandatanganan tipe A menggunakan mode bypass

import { createHash } from "node:crypto";

async function handleRequest(request) {
  const url = new URL(request.url);
  const path = url.pathname;
  const delta = 3600;

  const authKeyTypeA = url.searchParams.get("auth_key");

  const privateKey = "your_secret_key";
  const currentTimestamp = Math.floor(Date.now() / 1000);

  if (!authKeyTypeA) {
    // Otentikasi gagal. Berikan false. Edge mengembalikan kode status 403 ke klien secara default.
    return new ResponseBypass(false, {
      status: 401,
    });
  }

  const [timestamp, rand, uid, signature] = authKeyTypeA.split("-");

  if (currentTimestamp > parseInt(timestamp) + delta) {
    // Otentikasi gagal. Berikan false. Edge mengembalikan kode status 403 ke klien secara default.
    return new ResponseBypass(false, {
      status: 403,
    });
  }

  const signString = [path, timestamp, rand, uid, privateKey].join("-");

  const md5 = createHash("md5").update(signString).digest("hex");

  if (md5 !== signature) {
    // Otentikasi gagal. Berikan false. Edge mengembalikan kode status 403 ke klien secara default.
    return new ResponseBypass(false, {
      status: 401,
    });
  }

  // Otentikasi berhasil. Berikan true. Permintaan dilanjutkan ke origin, dan respons tidak lagi diproses oleh fungsi.
  const resSuccess = new ResponseBypass(true);
  return resSuccess;
}

export default {
  async bypass(request) {
    return handleRequest(request);
  },
};

Bagaimana cara memodifikasi binding nama domain?

Jika binding nama domain dan aturan routing saat ini tidak memenuhi kebutuhan bisnis Anda, Anda dapat mengedit atau menghapusnya.

  1. Masuk ke Konsol ESA. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik layanan Functions and Pages yang ingin dimodifikasi.

  2. Klik tab Domain Names.

  3. Di halaman Domain Names, Anda dapat Remove binding nama domain, serta Edit atau Delete aturan routing.