All Products
Search
Document Center

Edge Security Acceleration:Konfigurasikan nama domain

Last Updated:Jun 05, 2026

Untuk mengakses Functions and Pages melalui domain kustom, konfigurasikan nama domain sebagai titik masuk. Edge Security Acceleration (ESA) menyediakan dua metode untuk mengarahkan permintaan HTTP/HTTPS ke Functions and Pages: Custom Domains dan Routes.

Prasyarat

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

Situs aktif memiliki paket yang telah dibeli dan terhubung menggunakan Rekaman NS atau CNAME.

Pilih metode konfigurasi

image

Fitur

Custom Domains

Routes

Tujuan utama

Meneruskan seluruh permintaan dari domain tertentu, seperti api.example.com, ke satu instans Functions and Pages.

Hanya meneruskan permintaan yang sesuai dengan path yang telah ditentukan, seperti example.com/api/*, ke Functions and Pages. Permintaan lain tidak terpengaruh.

Lingkup

Seluruh trafik untuk domain tersebut.

Hanya trafik yang sesuai dengan aturan tersebut.

Konfigurasi

Proses sederhana dalam satu langkah.

Fleksibel. Memerlukan konfigurasi aturan pencocokan.

Kasus penggunaan

  • Fungsi gateway API khusus.

  • Aplikasi rendering sisi server (SSR) lengkap.

  • Mengotentikasi atau mencatat path API tertentu.

  • Menerapkan Pengujian A/B untuk path halaman tertentu.

  • Menangkap permintaan tertentu dan mengembalikan konten kustom.

Bind domain kustom

Gunakan Custom Domains untuk mengarahkan seluruh trafik dari suatu domain ke satu instans Functions and Pages.

Hubungkan Functions and Pages ke domain situs Anda. Setelah binding, akses Functions and Pages melalui domain kustom tersebut. Domain yang di-bind ke Functions and Pages harus termasuk dalam situs yang tersedia. ESA secara otomatis menambahkan Rekaman DNS untuk domain yang di-bind tersebut.

  1. Masuk ke ESA console. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik instans Functions and Pages yang dituju.

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

  3. Masukkan nama domain yang akan di-bind ke instans Functions and Pages Anda, misalnya pages.example.com. ESA secara otomatis membuat Rekaman DNS untuk domain tersebut pada situs yang sesuai.

    Catatan

    Domain baru mewarisi konfigurasi situsnya. Jika situs tidak memiliki Sertifikat SSL/TLS, domain tersebut tidak dapat diakses melalui HTTPS. Konfigurasikan SSL/TLS untuk mengaktifkan akses HTTPS.

    image

  4. Lanjutkan langkah berikutnya berdasarkan metode koneksi situs Anda.

    Rekaman NS

    Jika situs Anda menggunakan Rekaman NS, tunggu sekitar satu menit hingga Rekaman DNS berlaku. Kemudian, buka browser dan kunjungi domain kustom tersebut, misalnya pages.example.com, untuk melihat hasilnya.image

    Rekaman CNAME

    Jika situs Anda menggunakan Rekaman CNAME, tambahkan Rekaman CNAME di penyedia DNS Anda untuk mengaktifkan domain tersebut.

    1. Di daftar domain kustom, temukan domain baru Anda dan klik View DNS Records.

      image

    2. Salin nilai CNAME yang dihasilkan oleh ESA.

      image

    3. Buka situs web penyedia DNS Anda dan tambahkan Rekaman CNAME dengan informasi berikut:

      • Host Record: Masukkan awalan domain kustom tersebut. Untuk contoh ini, masukkan pages.

      • Record Type: Pilih CNAME.

      • Record Value: Tempel nilai CNAME yang telah Anda salin pada langkah sebelumnya.

      image

    4. Kembali ke Konsol ESA dan tunggu hingga CNAME Status menampilkan Configured.imageAnda kemudian dapat melihat halaman tersebut dengan mengunjungi domain kustom yang baru saja di-bind, misalnya pages.example.com, di browser.image

Konfigurasikan Routes

Arahkan permintaan yang sesuai dengan path URL tertentu ke instans Functions and Pages untuk kontrol trafik detail halus. Permintaan yang sesuai diproses oleh Functions and Pages; permintaan yang tidak sesuai tetap mengikuti alur akselerasi dan cache standar ESA. Misalnya, route untuk example.com/a* pada situs example.com mengirim permintaan ke /a, /a1, dan /a2 ke Functions and Pages, sedangkan permintaan ke /b, /c, dan /d diarahkan ke origin atau cache.

  1. Masuk ke ESA console. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik instans Functions and Pages yang dituju.

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

  3. Masukkan Route Name. Dari daftar Select Website, pilih situs target, misalnya example.com.

  4. Pilih Route Mode.

    1. Simple Mode: Mencocokkan permintaan hanya berdasarkan URL (hostname dan path). Misalnya, Anda dapat mengonfigurasi aturan untuk mengarahkan semua permintaan dengan awalan URL pages.example.com ke instans Functions and Pages Anda.image

    2. Custom Mode: Gabungkan beberapa kondisi seperti header permintaan, cookie, dan metode permintaan untuk pencocokan kompleks. Atur hubungan logis antar kondisi (Semua/Salah satu). Misalnya, teruskan permintaan ke Functions and Pages hanya jika Hostname sama dengan www.example.com dan header permintaan User-Agent berisi Mobile:image

  5. Buka browser dan kunjungi URL yang sesuai dengan route tersebut untuk melihat hasilnya.

    image

Penting
  • Jika Anda menggunakan Basic mode dan memasukkan domain dengan awalan, seperti *.example.com atau www.example.com, Rekaman DNS yang sesuai harus ada di Konsol ESA, atau Anda harus menambahkan rekaman secara manual. Jika tidak, permintaan ke domain tersebut akan gagal.

  • Jika Anda memiliki beberapa route, evaluasi dilakukan dari atas ke bawah. Route pertama yang cocok diterapkan, dan sisanya diabaikan.

Aturan pencocokan

  • Route harus mencakup hostname dan path. Route yang hanya berisi path, seperti /path, tidak didukung.

  • Tambahkan wildcard * di awal atau akhir route untuk mencocokkan lebih banyak permintaan. Wildcard * mencocokkan nol atau lebih karakter. Misalnya, example.com/* mencocokkan semua permintaan ke example.com.

  • Route bersifat case-sensitive. Misalnya, example.com/a dan example.com/A adalah dua route yang berbeda.

  • Wildcard (*) tidak boleh muncul di tengah path, dan parameter kueri tidak didukung dalam pola. Misalnya, pola seperti example.com/*/path dan example.com/path?param=1 tidak valid.

  • Jika suatu permintaan cocok dengan beberapa route, route pertama dalam daftar yang cocok akan diprioritaskan.

Mode Bypass

Mengaktifkan Bypass mode untuk suatu route mengirimkan permintaan yang cocok ke layanan Functions and Pages sebagai subpermintaan. Gunakan mode ini untuk otentikasi atau pencatatan tanpa mengganggu alur permintaan utama ke origin:

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

  2. Permintaan tersebut cocok dengan suatu route dan diteruskan ke Functions and Pages untuk operasi seperti logging atau otentikasi. Dalam mode bypass, badan permintaan tidak diteruskan ke Functions and Pages.

  3. Jika Functions and Pages mengembalikan kode status 200, permintaan dilanjutkan ke langkah berikutnya. Jika mengembalikan kode status lain, ESA menghentikan pemrosesan dan mengembalikan kode status 403 ke klien.

  4. Permintaan dilanjutkan melalui alur standar ESA, di mana permintaan tersebut diperiksa berdasarkan kebijakan cache atau diteruskan ke server origin.

  5. Tanggapan dari cache hit atau server origin dikembalikan ke node ESA. Pada titik ini, tanggapan tidak lagi diproses oleh Functions and Pages.

  6. Tanggapan dikirim ke klien.

Kasus penggunaan

  • Pencatatan (Logging): Gunakan mode bypass untuk meneruskan permintaan tertentu ke Functions and Pages dan definisikan logika pencatatan kustom dalam fungsi Anda.

  • Otentikasi untuk unduhan file besar: Meneruskan respons besar melalui fungsi menghabiskan waktu CPU yang signifikan dan meningkatkan biaya. Gunakan mode bypass untuk mengotentikasi dengan Functions and Pages terlebih dahulu, sehingga transfer file besar tidak melewati fungsi tersebut.

FAQ

Kode untuk mode bypass

Ambil Penandatanganan URL Tipe A sebagai contoh:

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

  • Fungsi harus mengembalikan nilai yang dibuat dengan new ResponseBypass(), yang menerima dua parameter:

    • Parameter pertama adalah boolean (true atau false) yang menunjukkan apakah otentikasi berhasil.

    • Jika otentikasi gagal (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) {
    // Dalam skenario kegagalan otentikasi, node edge mengembalikan error 403 ke klien secara default.
    return new Response('Unauthorized', { 
      status: 401,
    });
  }

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

  if (currentTimestamp > parseInt(timestamp)+ delta) {
    // Dalam skenario kegagalan otentikasi, node edge mengembalikan error 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 domain lain, ambil dan kembalikan responsnya.
  // 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, mengambil dari origin sudah cukup.
  return fetch(request.url)
}

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

Contoh kode untuk Penandatanganan Tipe A dengan 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. Jika Anda memberikan false, node edge mengembalikan error 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. Jika Anda memberikan false, node edge mengembalikan error 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. Jika Anda memberikan false, node edge mengembalikan error 403 ke klien secara default.
    return new ResponseBypass(false, {
      status: 401,
    });
  }

  // Otentikasi berhasil. Jika Anda memberikan true, permintaan dilanjutkan ke origin, dan respons tidak lagi diproses oleh fungsi ini.
  const resSuccess = new ResponseBypass(true);
  return resSuccess;
}

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

Ubah konfigurasi domain

Jika domain dan route saat ini tidak lagi memenuhi kebutuhan Anda, edit atau hapus konfigurasi tersebut.

  1. Masuk ke ESA console. Di panel navigasi sebelah kiri, pilih Edge Computing > Functions and Pages. Klik instans Functions and Pages yang dituju.

  2. Klik tab Domains.

  3. Di tab Domain Names, Anda dapat Remove domain kustom. Untuk route, Anda dapat Edit atau Delete route tersebut.