Tutorial ini menunjukkan cara mempercepat situs e-commerce sederhana dengan memisahkan konten dinamis dan statis menggunakan Fungsi Percepatan Keamanan Tepi (ESA). Panduan ini mencakup langkah-langkah penyebaran dan konfigurasi serta menjelaskan bagaimana fungsi tersebut dapat meningkatkan kecepatan pemuatan situs web dan pengalaman pengguna.
Alur Kerja
Untuk mempercepat konten statis dan dinamis situs web secara terpisah, ikuti langkah-langkah berikut:
Konfigurasikan situs web: Tambahkan nama domain utama Anda ke ESA.
Sebarkan sumber daya statis: Simpan sumber daya gambar di Layanan Penyimpanan Objek (OSS). Kemudian, konfigurasikan nama domain di ESA untuk mengakses gambar-gambar tersebut.
Sebarkan sumber daya dinamis: Sebarkan layanan Python pada server Elastic Compute Service (ECS). Kemudian, konfigurasikan nama domain di ESA untuk mempercepat permintaan dinamis.
Konfigurasikan fungsi tepi: Konfigurasikan fungsi tepi dan tetapkan nama domain untuk itu, yang memberikan respons rendering halaman yang cepat.
Sebelum Anda mulai
Tutorial ini menggunakan nama domain contoh berikut: www.example.com untuk server asal, shopping.example.com sebagai nama domain yang dipercepat, dan images.example.com sebagai domain untuk sumber daya statis. Gantilah ini dengan nama domain sebenarnya Anda. Anda dapat menggunakan gambar dan skrip python dalam Bahan File untuk bukti konsep (POC).
1. Konfigurasikan situs web Anda
Tambahkan situs web Anda ke ESA untuk mempercepat sumber daya statis dan dinamisnya.
Di Konsol ESA, pilih Websites dan klik Add Website.
Masukkan situs web Anda, seperti
example.com, dan klik Next.Di halaman Select Location and DNS Setup, pilih wilayah di bagian Location for Acceleration and Protection, dan pilih CNAME untuk DNS Setup, lalu klik Next.
Di halaman Select Plan, baik beli paket New Plans atau pilih paket Purchased Plans. Ikuti petunjuk di layar untuk menyelesaikan pembelian.
Beli paket baru
Di halaman New Plans, pilih paket yang sesuai dengan kebutuhan Anda.

Hubungkan paket yang ada
Jika Anda memiliki paket yang ada, pilih di tab Purchased Plans.

Di Konsol ESA, klik Websites di panel navigasi kiri, dan klik situs web target. Di halaman Overview, verifikasi kepemilikan nama domain.
Salin Record Value dari rekaman TXT.

Di Konsol DNS Alibaba Cloud, pilih di panel navigasi kiri. Di tab Public Zone, temukan nama domain situs web target dan klik Settings.
Di bagian Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut dan klik OK.
Konfigurasi
Contoh nilai
Record Type
TXTHostname
_esaauthRecord Value
verify_a186***be8(Nilai rekaman yang disediakan di konsol)TTL
10 menit
Di Konsol ESA, buka halaman ikhtisar situs web target dan klik Verify.
Verifikasi berhasil: Jika ESA menampilkan
Verifikasi berhasil, verifikasi selesai.Verifikasi gagal: Jika ESA menampilkan
Verifikasi gagal, periksa apakah langkah sebelumnya dilakukan dengan benar, sesuaikan pengaturannya, dan klik Verify lagi.
2. Atur sumber daya statis
2.1 Persiapkan lingkungan
Masuk ke Konsol OSS. Buka halaman Bucket dan klik Create Bucket. Masukkan Bucket Name. Pertahankan pengaturan default untuk parameter lainnya dan klik Create.

Pilih bucket yang Anda buat. Di halaman daftar file, unggah file yang diperlukan. Ekstrak set gambar dari bagian Bahan File dan unggah gambar ke direktori root bucket.
CatatanKami merekomendasikan menyimpan sumber daya gambar di direktori root bucket OSS.
2.2 Konfigurasikan nama domain untuk sumber daya statis
Di Konsol ESA, pilih Websites. Pada kolom Website, klik situs yang dituju.
Di panel navigasi kiri, pilih . Tambahkan rekaman DNS. Tabel berikut menunjukkan pengaturan contoh:
Konfigurasi
Contoh nilai
Record Type
CNAMEHostname
imagesProxy Status
Diproksikan
Record Value
OSS
Access Type
Akses Pribadi (Akun yang sama)
Authorization
Secara default, akses pribadi untuk akun yang sama diotorisasi secara otomatis.
OSS Bucket
website-resources-shopping.*******.aliyuncs.comOrigin Host
Cocokkan Nama Domain Asal
TTL
Otomatis
Untuk Tipe Rekaman, pilih Images/Video dan klik Done.
Setelah rekaman DNS dibuat, salin Hostname dan Record Value dari halaman Panduan Konfigurasi CNAME.

Pergi ke DNS Alibaba Cloud console. Di panel navigasi kiri, pilih . Temukan nama domain situs web target dan klik Settings.
Di bagian Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut dan klik OK.
Konfigurasi
Contoh nilai
Record Type
CNAMEHostname
imagesRecord Value
images.example.com.**.*******.comTTL
10 menit
Kembali ke halaman Panduan Konfigurasi CNAME dari Langkah 4. Di langkah CNAME Verification, klik Query. Jika statusnya adalah Effective, rekaman CNAME berhasil dikonfigurasi.
CatatanRekaman CNAME mungkin memerlukan beberapa menit untuk berlaku.
Uji apakah gambar dapat ditampilkan dengan memasukkan
http://{nama domain yang dipercepat}/1.pngdi browser Anda.CatatanJika terjadi kesalahan 404, coba modifikasi URL untuk mengakses file berdasarkan jalur direktorinya. Misalnya, jika gambar Anda berada di direktori gambar alih-alih direktori root, akses
http://{nama domain yang dipercepat}/images/1.png.
3. Sebarkan sumber daya dinamis
3.1 Persiapkan lingkungan
Masuk ke Konsol ECS.
Di panel navigasi kiri, pilih Instances & Images > Instances. Di bilah menu atas, pilih wilayah tempat instans Anda berada. Dalam contoh ini, itu adalah China (Hangzhou).
Di halaman Instances, klik Create Instance. Lalu buat instans ECS merujuk pada contoh berikut:
Konfigurasi | Contoh nilai |
Metode Penagihan | Pay-As-You-Go |
Wilayah | China (Hangzhou) |
Jaringan dan Zona | VPC default, vSwitch default di zona |
Instans | ecs.e-c1m1.large (2 vCPU 2 GiB) |
Citra | Di Public Image, pilih Alibaba Cloud Linux |
Versi Citra | Alibaba Cloud Linux 3.2104 LTS 64-bit |
Tipe Disk Sistem | ESSD |
Ukuran Disk Sistem | 40 GiB |
Alamat IP Publik | Pilih Assign Public IPv4 Address |
Metode Penagihan Bandwidth | Pay-by-traffic |
Bandwidth | 5 Mbps |
Grup Keamanan | Create Security Group (Di Enable IPv4 Port/Protocol, pilih |
Pengaturan Manajemen | Custom Password (Atur kata sandi Anda sendiri) |
3.2 Sebarkan sumber daya dinamis
Masuk ke Konsol ECS.
Di panel navigasi kiri, pilih Instances & Images > Instances. Di bilah menu atas, pilih wilayah China (Hangzhou).
Di halaman Instances, temukan instans target dan klik ID instans untuk masuk ke halaman detail instans.
Klik Remote Connection. Pilih Connect dan klik Sig In Now. Masukkan kata sandi logon untuk masuk ke instans.

Unduh skrip demo Python dan data produk dari Bahan File. Setelah mengekstrak paket tersebut, unggah kedua file ke server ECS.
Ganti nama domain
images.example.comdiItemInfo.jsondengan nama domain yang dipercepat untuk sumber daya statis yang Anda konfigurasikan di Bagian 2.2.Kemudian, di pojok kiri atas, pilih File > New File Manager Window > Upload File. Unggah dua dokumen yang diunduh ke server.

Di konsol Workbench, masukkan perintah berikut untuk memulai server HTTP.
cd / # Pergi ke direktori root. nohup python -m http.server 80 & #Mulai layanan HTTP pada port 80 di latar belakang.Masukkan
http://<Public IP>/ItemsInfo.jsondi browser Anda untuk memeriksa apakah informasi produk dinamis dikembalikan dengan benar.
3.3 Konfigurasikan nama domain untuk sumber daya dinamis
Di Konsol ESA, pilih Websites. Di kolom Actions situs target, klik ikon dan pilih DNS Records.
Di panel navigasi kiri, pilih .
Di halaman daftar rekaman, klik Add Record. Konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut dan klik Next.
Konfigurasi
Contoh nilai
Record Type
A/AAAAHostname
www
Proxy Status
Diproksikan
Record Value
10.0.x.x (Alamat IP publik instans ECS target)
TTL
Otomatis
Untuk Tipe Rekaman, pilih API dan klik Complete.
Setelah rekaman DNS dibuat, klik CNAME Configuration Guide. Salin Hostname dan Record Value.
CatatanJangan tutup halaman saat ini. Anda perlu kembali ke halaman ini di Langkah 8 untuk memverifikasi apakah rekaman CNAME telah berlaku.

Pergi ke Konsol DNS Alibaba Cloud. Di panel navigasi kiri, pilih . Temukan nama domain situs target dan klik Settings.
Di bagian Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut dan klik OK.
Konfigurasi
Contoh nilai
Record Type
CNAMEHostname
wwwRecord Value
www.example.com.**.*******.com(Nilai Record Value dari CNAME Configuration Wizard)TTL
10 menit
Kembali ke halaman CNAME Configuration Wizard dari Langkah 5. Di langkah CNAME Verification, klik Query. Jika Effective ditampilkan, rekaman CNAME berhasil dikonfigurasi.
CatatanRekaman CNAME mungkin memerlukan beberapa menit untuk berlaku.
4. Konfigurasikan fungsi tepi
4.1 Buat fungsi tepi
Masuk ke Konsol ESA. Di panel navigasi kiri, pilih .
Di halaman Functions and Pages, klik Change di area Account Information di pojok kanan atas.
Di kotak dialog Change Plan, pilih Paid dan klik OK.
Klik Create. Pilih Hello World dari Function Templates dan klik Next.
Masukkan Function Name. Tambahkan deskripsi dan klik Submit.
Tambahkan titik akhir untuk fungsi tepi.
Di panel navigasi kiri, pilih . Di halaman daftar fungsi tepi, klik fungsi target.
Di halaman detail fungsi, beralih ke tab Domains dan klik Add Domain Name. Tetapkan titik akhir
shopping.example.comke fungsi dan klik OK.Di area pengikatan nama domain, temukan nama domain fungsi tepi yang Anda buat. Di kolom Actions, klik View DNS Records. Salin nilai CNAME dari nama domain fungsi tepi.

Masuk ke Konsol DNS Alibaba Cloud. Di panel navigasi kiri, pilih . Temukan nama domain situs web target dan klik Settings.
Di bagian Settings, klik Add Record. Tambahkan rekaman dengan pengaturan berikut dan klik OK.
Konfigurasi
Deskripsi
Contoh nilai
Record Type
Pilih tipe ke mana nama domain mengarah.
CNAMEHostname
Masukkan rekaman host berdasarkan awalan nama domain.
shoppingRecord Value
Masukkan nilai CNAME yang sesuai dengan nama domain fungsi tepi.
shopping.example.com.**.*******.comTTL
Periode pembaruan nama domain. Pertahankan nilai default.
10 menit
Segarkan halaman rekaman DNS dan periksa apakah CNAME Status untuk nama domain fungsi tepi telah berubah dari To Be Configured menjadi Configured.
CatatanRekaman CNAME mungkin memerlukan beberapa menit untuk berlaku. Jika tidak segera berlaku, tunggu beberapa menit.
4.2 Konfigurasikan sertifikat tepi
ESA mendukung enkripsi HTTPS. Anda dapat mengonfigurasi sertifikat SSL di ESA dan mengaktifkan SSL/TLS untuk mengenkripsi transmisi data antara klien dan POP ESA. Untuk solusi ini, kami merekomendasikan agar Anda meminta sertifikat gratis. Untuk informasi lebih lanjut, lihat Cara mengonfigurasi sertifikat tepi.
Di Konsol ESA, klik Site Management di sebelah kiri. Di halaman Manajemen Situs, klik situs target.
Di halaman manajemen situs target, pilih di panel navigasi sebelah kiri.
Di bagian Edge Certificate, temukan Enable SSL/TLS dan klik sakelar di sebelah kanan untuk mengaktifkan fitur ini.

Di bagian Edge Certificate, temukan Certificate Management dan klik Request Free Certificate. Konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut dan klik OK.
Konfigurasi
Deskripsi
Contoh nilai
Certificate Authority
Pertahankan nilai default.
Let's EncryptCertificate Domain Names
Masukkan nama domain sumber daya statis, nama domain sumber daya dinamis, dan nama domain fungsi tepi dari langkah-langkah sebelumnya.
images.example.comwww.example.comshopping.example.comPermintaan sertifikat gratis memakan waktu sekitar 5 hingga 10 menit. Setelah sertifikat diterbitkan, sertifikat tersebut secara otomatis diterapkan ke platform ESA.
4.3 Konfigurasikan protokol asal dan port
Setelah sertifikat SSL dikonfigurasi, ESA menggunakan protokol yang sama dengan permintaan klien (HTTPS) untuk pengambilan asal secara default. Namun, server asal dalam demo ini tidak mendukung HTTPS, dan permintaan HTTPS ke server asal akan gagal. Oleh karena itu, Anda harus menentukan HTTP sebagai protokol asal di ESA.
Di Konsol ESA, klik Website di sebelah kiri dan klik situs target.
Di halaman Website, pilih di panel navigasi sebelah kiri.
Di bagian Origin Certificate, temukan Origin Protocol and Port dan klik Configure. Konfigurasikan parameter seperti yang dijelaskan dalam tabel berikut dan klik OK.
Konfigurasi
Deskripsi
Contoh nilai
Origin Protocol
Karena server asal tidak mendukung HTTPS, pilih
HTTP.HTTPHTTP Port
Pertahankan nilai default
80.80
4.4 Uji dan publikasikan fungsi tepi
Masuk ke Konsol ESA, dan di panel navigasi sebelah kiri, pilih .
Di halaman daftar fungsi tepi, pilih fungsi target.
Di halaman detail fungsi tepi, beralih ke tab Code. Gunakan kode JavaScript berikut dan ganti variabel
urlPrefixdengan nama domain asalwww.example.com. Lalu, klik Save.async function handleRequest(request) { const urlPrefix = 'www.example.com'; // URL permintaan untuk file HTML const staticDataUrl = 'http://' + urlPrefix + '/index.html'; // URL permintaan untuk data dinamis const dynamicDataUrl = 'http://' + urlPrefix + '/ItemsInfo.json'; // Gunakan API Cache untuk meminta data kerangka halaman const htmlCache = await cache.get(staticDataUrl); let html = ''; if (htmlCache === undefined) { const htmlResponse = await fetch(staticDataUrl); html = await htmlResponse.text(); await cache.put(staticDataUrl, new Response(html, { headers: [["cache-control", "max-age=1000"]] })); } else { html = await htmlCache.text(); } // Ambil data produk dari server asal const jsonResponse = await fetch(dynamicDataUrl); const json = await jsonResponse.json(); // Enkapsulasi data dinamis ke dalam blok div let itemsHtml = ''; for (const item of json.data) { const itemHtml = ` <div class="bg-white overflow-hidden shadow rounded-lg"> <div class="p-4"> <img class="h-48 w-full object-cover" src="${item.image}" alt="Placeholder image of a product"> <h3 class="mt-2 text-gray-900 text-sm font-medium">${item.title}</h3> <div class="mt-4"> ${item.originalPrice}${item.discountPrice}Di editor kode, klik Request di pojok kanan atas untuk melakukan uji lokal. Log ditampilkan di bagian kiri bawah editor.
Setelah uji lokal berhasil, klik One-click Release untuk menerapkan kode ke lingkungan produksi.
5. Verifikasi dan bersihkan sumber daya
5.1 Verifikasi demo
Setelah Anda mempublikasikan fungsi tepi, verifikasi hasilnya dengan cara berikut:
Buka browser dan akses nama domain fungsi tepi yang Anda buat di Bagian 4.1 (https://<Nama domain fungsi tepi Anda>).
Periksa apakah halaman dimuat dengan benar dan informasi produk dirender secara dinamis.
Gunakan alat pengembang browser untuk memeriksa permintaan jaringan. Pastikan sumber daya statis menghasilkan cache hit dan data dinamis dipercepat melalui POP.


5.2 (Opsional) Bersihkan sumber daya
Demo ini melibatkan pembuatan beberapa instans sumber daya. Jika Anda tidak lagi membutuhkan sumber daya tersebut, lepaskan untuk menghindari biaya:
Hapus situs web dari ESA.
Masuk ke Konsol ESA. Di panel navigasi kiri, klik . Temukan situs web yang ingin dihapus dan klik Delete di kolom Actions.
Hapus fungsi tepi.
Di Konsol ESA, pilih di panel navigasi sebelah kiri. Klik fungsi yang ingin dihapus dan klik Delete di tab Basic Information .
Lepaskan instans ECS.
Masuk ke Konsol ECS. Di halaman Instances, temukan instans target. Di kolom Actions, pilih Release. Lepaskan instans sesuai petunjuk.
Hapus grup keamanan.
Masuk ke Konsol ECS. Di halaman Security Groups, temukan grup keamanan target. Di kolom Actions, klik Delete. Hapus grup keamanan sesuai petunjuk.