Konfigurasikan beberapa sertifikat pada satu instans Global Accelerator untuk mempercepat akses ke beberapa domain HTTPS.
Kasus penggunaan
Sebuah perusahaan yang berbasis di AS (Silicon Valley) telah men-deploy dua layanan web di server Alibaba Cloud, masing-masing menggunakan nama domain berbeda. Klien utamanya berada di Tiongkok (Hong Kong), dan layanan web tersebut menghadapi tantangan berikut:
Koneksi jaringan publik yang tidak stabil menyebabkan latensi tinggi, jitter, dan kehilangan paket.
Mempercepat setiap domain secara terpisah mengakibatkan biaya tinggi.
Untuk mengatasi masalah ini, perusahaan berencana men-deploy Global Accelerator dengan pendengar HTTPS. Pendengar HTTPS mempercepat akses ke beberapa domain HTTPS melalui fitur-fitur berikut:
Mendukung binding beberapa sertifikat untuk mengaitkan beberapa domain dengan satu pendengar HTTPS.
Mendukung aturan pengalihan berbasis domain yang mengarahkan permintaan untuk domain berbeda ke server backend yang sesuai.
Mengenkripsi permintaan klien untuk memastikan keamanan data selama transmisi.
Tabel berikut menjelaskan detail server web dan rencana pengalihan permintaan setelah men-deploy Global Accelerator.
Item | Domain 1 | Domain 2 |
Protokol pendengar | HTTPS | |
Port pendengar | 443 | |
Sertifikat yang sesuai | sertifikat default A | sertifikat tambahan B |
Aturan pengalihan yang sesuai | aturan pengalihan default | aturan pengalihan kustom |
Kelompok titik akhir yang sesuai | kelompok titik akhir default | kelompok titik akhir virtual |
Server yang sesuai | Server 1 | Server 2 |
Protokol layanan backend | HTTP | HTTPS |
Port layanan backend | 80 | 443 |
Alamat IP publik server | 47.XX.XX.62 | 47.XX.XX.34 |
Sertifikat yang dikonfigurasi di Global Accelerator mengenkripsi data dari klien ke instans. Sertifikat yang diinstal pada server backend mengenkripsi data dari Global Accelerator ke server.
Prasyarat
Anda telah membeli sertifikat SSL dan mengajukan permohonan sertifikat. Untuk informasi lebih lanjut, lihat Pilih dan beli sertifikat dan Ajukan permohonan sertifikat.
Anda telah mengunggah file sertifikat ke server backend. Untuk informasi lebih lanjut, lihat Unggah file ke instance ECS menggunakan Cloud Assistant.
Server backend Anda, Server 1 dan Server 2, menyediakan layanan melalui Port HTTP 80 dan Port HTTPS 443, masing-masing.
Anda telah mengonfigurasi resolusi DNS untuk Domain 1 (
xxxtest.cloud) dan Domain 2 (xxxtest.fun). Secara khusus, Anda telah mengonfigurasi Rekaman A yang mengarahkan domain ke alamat IP publik server backend.
Topik ini menjelaskan cara menggunakan Nginx untuk mengonfigurasi layanan backend yang berjalan di Port HTTP 80 dan Port HTTPS 443, serta menggunakan Alibaba Cloud DNS untuk mengonfigurasi rekaman DNS. Jika Anda menggunakan penyedia layanan DNS lain, ikuti petunjuk mereka.
Prosedur
Topik ini menggunakan instans Global Accelerator standar bayar sesuai penggunaan sebagai contoh untuk menunjukkan cara mengonfigurasi Global Accelerator agar mempercepat akses ke beberapa domain HTTPS. Sebelum membuat instans Global Accelerator standar bayar sesuai penggunaan, perhatikan informasi berikut:
Instans GA bayar sesuai penggunaan menggunakan Pay-By-Data-Transfer untuk penagihan bandwidth. Anda tidak perlu mengaitkan paket bandwidth. Cloud Data Transfer (CDT) menangani penagihan traffic.
Pertama kali menggunakan instans GA bayar sesuai penggunaan, Anda harus Aktifkan Layanan.
Langkah 1: Konfigurasi informasi dasar
Masuk ke Konsol Global Accelerator.
Pada halaman Instances, klik Create Standard Pay-as-you-go Instance.
Pada langkah Basic Instance Configuration, konfigurasikan parameter berdasarkan tabel berikut lalu klik Next.
Parameter
Deskripsi
GA Instance Name
Masukkan nama untuk instans GA.
Instance Billing Method
Pay-As-You-Go dipilih secara default.
Anda dikenai biaya instans, biaya CU, dan biaya transfer data untuk instans Global Accelerator bayar sesuai penggunaan.
Resource Group
Pilih kelompok sumber daya tempat instans standar berada.
Kelompok sumber daya harus dibuat oleh Akun Alibaba Cloud saat ini di Resource Management. Untuk informasi lebih lanjut, lihat Buat kelompok sumber daya.
Langkah 2: Konfigurasi area percepatan
Konfigurasikan area percepatan untuk instans Global Accelerator guna menentukan wilayah tempat pengguna Anda berada dan mengalokasikan bandwidth untuk mempercepat akses ke layanan backend Anda.
Pada langkah Configure Acceleration Area, konfigurasikan parameter berdasarkan tabel berikut lalu klik Next.
Parameter | Deskripsi |
Acceleration Area | Pilih satu atau beberapa wilayah dari daftar drop-down lalu klik Add. Dalam contoh ini, wilayah China (Hong Kong) pada bagian Asia Pacific dipilih. |
Assign Bandwidth | |
Maximum Bandwidth | Tentukan bandwidth maksimum untuk wilayah percepatan. Setiap wilayah percepatan mendukung rentang bandwidth 2 hingga 10.000 Mbit/s. Bandwidth maksimum digunakan untuk pembatasan bandwidth. Biaya transfer data dikelola oleh CDT. Dalam contoh ini, nilai default 200 Mbit/s digunakan. Penting Jika Anda menentukan nilai kecil untuk bandwidth maksimum, pembatasan kecepatan dapat terjadi dan paket mungkin dibuang. Tentukan bandwidth maksimum sesuai kebutuhan. |
IP Protocol | Pilih versi IP yang digunakan untuk terhubung ke Global Accelerator. Dalam contoh ini, nilai default IPv4 dipilih. |
ISP Line Type | Pilih jenis jalur ISP untuk instans Global Accelerator. Dalam contoh ini, BGP (Multi-ISP) dipilih. |
Langkah 3: Konfigurasi pendengar
Pendengar memeriksa dan memproses permintaan koneksi inbound berdasarkan port dan protokol yang Anda tentukan. Setiap pendengar dikaitkan dengan satu atau beberapa kelompok titik akhir. Setelah Anda mengaitkan kelompok titik akhir dengan pendengar, GA mengarahkan traffic ke titik akhir optimal dalam kelompok tersebut.
Pada halaman Configure Listeners, konfigurasikan pendengar lalu klik Next.
Parameter | Deskripsi |
Listener Name | Masukkan nama untuk pendengar. |
Routing Type | Pilih jenis routing. Dalam contoh ini, pilih Intelligent Routing. |
Protocol | Pilih protokol untuk pendengar. Dalam contoh ini, pilih HTTPS. |
Port | Tentukan port pendengar yang digunakan untuk menerima dan meneruskan permintaan ke titik akhir. Nomor port harus berada dalam rentang 1 to 65499. Dalam contoh ini, masukkan 443. |
Server certificate | Pilih sertifikat server yang telah Anda peroleh. Dalam contoh ini, pilih Sertifikat A. |
TLS security policy | Pilih kebijakan keamanan TLS yang akan digunakan. Kebijakan keamanan TLS mencakup versi protokol TLS dan paket sandi yang didukung untuk HTTPS. Untuk informasi lebih lanjut, lihat Kebijakan keamanan TLS. Jika Anda tidak mengonfigurasi parameter ini, kebijakan default tls_cipher_policy_1_0 akan digunakan. |
Client Affinity | Tentukan apakah akan mengaktifkan client affinity. Saat diaktifkan, semua permintaan dari klien yang sama akan diarahkan ke titik akhir yang sama. Fitur ini cocok untuk aplikasi berstatus. Dalam contoh ini, pilih Source IP Address. |
Add HTTP Header | Pilih field header HTTP tambahan yang Anda perlukan. Dalam contoh ini, konfigurasi default digunakan. |
Langkah 4: Konfigurasi kelompok titik akhir dan titik akhir
Pada halaman Configure an Endpoint Group, konfigurasikan kelompok titik akhir dan titik akhir, lalu klik Next.
Bagian ini hanya menjelaskan parameter yang sangat relevan dengan skenario ini. Untuk informasi lebih lanjut, lihat Tambah dan kelola kelompok titik akhir untuk pendengar routing cerdas.
Parameter
Deskripsi
Region
Pilih wilayah tempat kelompok titik akhir dideploy.
Dalam contoh ini, pilih US (Silicon Valley).
Endpoint Configuration
Titik akhir adalah host tujuan untuk permintaan klien. Konfigurasikan titik akhir berdasarkan informasi berikut:
Backend Service Type: Pilih Alibaba Cloud Public IP.
Backend Service: Masukkan alamat IP layanan backend yang akan dipercepat. Dalam contoh ini, masukkan alamat IP publik Server 1: 47.XX.XX.62.
Weight: Masukkan bobot untuk titik akhir. Nilainya harus berada dalam rentang 0 hingga 255. Global Accelerator mengarahkan traffic ke titik akhir berdasarkan bobotnya. Dalam contoh ini, nilai default 255 digunakan.
PeringatanJika bobot titik akhir diatur ke 0, Global Accelerator menghentikan distribusi traffic ke titik akhir tersebut. Lakukan dengan hati-hati.
Preserve Client IP
Fitur preserve client IP, yang diaktifkan secara default, memungkinkan layanan backend mengambil alamat IP klien. Pendengar HTTP membaca alamat IP sumber klien dari field x-forwarded-for dalam header HTTP. Untuk informasi lebih lanjut, lihat Pertahankan alamat IP klien.
Backend Service Protocol
Pilih protokol layanan yang digunakan oleh server backend.
Protokol default adalah HTTP.
Port Mapping
Jika port pendengar berbeda dengan port layanan titik akhir Anda, Anda harus mengonfigurasi pemetaan port.
Listener Port: Parameter ini harus diatur ke port pendengar saat ini. Dalam contoh ini, masukkan 443.
Endpoint Port: Port layanan titik akhir Anda. Dalam contoh ini, masukkan 80.
Traffic Distribution Ratio
Tentukan persentase traffic yang akan diteruskan ke kelompok titik akhir.
Nilai valid: 0 hingga 100.
Dalam contoh ini, nilai default 100% digunakan.
Health Check
Aktifkan atau nonaktifkan pemeriksaan kesehatan.
Jika Anda mengaktifkan fitur ini, sistem akan memeriksa status kesehatan titik akhir. Untuk informasi lebih lanjut, lihat Aktifkan dan kelola pemeriksaan kesehatan.
Dalam contoh ini, pemeriksaan kesehatan dinonaktifkan secara default.
Pada halaman Configuration Review, tinjau pengaturan lalu klik Submit. Pembuatan instans GA memerlukan waktu sekitar 3 hingga 5 menit.
Opsi: Setelah instans dibuat, klik Go to Instance Details di bawah daftar detail tugas. Pada halaman detail instans, Anda dapat memilih tab seperti Instance Information, Listeners, dan Acceleration Areas untuk melihat konfigurasi instans.
Konfigurasikan kelompok titik akhir virtual.
Pada halaman detail instans, klik tab Listeners.
Pada tab Listener, temukan pendengar yang ingin Anda kelola lalu klik ID kelompok titik akhir pada kolom Default Endpoint Group.
Pada tab Endpoint Group, pada bagian Virtual Endpoint Group, klik Add Virtual Endpoint Group.
Pada halaman Add Endpoint Group, konfigurasikan pengaturan berdasarkan informasi berikut, lalu klik Create.
Kecuali parameter yang tercantum di bawah, konfigurasikan semua parameter lainnya sama seperti kelompok titik akhir default.
Backend Service Type: Pilih Alibaba Cloud Public IP.
Backend Service: Masukkan alamat IP publik Server 2: 47.XX.XX.34.
Backend Service Protocol: Pilih HTTPS.
Port Mapping: Tidak diperlukan pemetaan port.
Jika port pendengar sama dengan port layanan titik akhir Anda, pemetaan port tidak diperlukan. Global Accelerator secara otomatis meneruskan permintaan akses ke port layanan titik akhir.
Langkah 5: Bind sertifikat tambahan
Bind sertifikat tambahan ke pendengar HTTPS untuk mengaitkan domain lain. Dikombinasikan dengan aturan pengalihan berbasis domain, ini mengarahkan permintaan untuk domain berbeda ke kelompok titik akhir virtual yang berbeda.
Langkah-langkah berikut menjelaskan cara mengaitkan Domain 2 (xxxtest.fun) dengan pendengar HTTPS dengan mengikat Sertifikat B.
-
Pada tab Listener, temukan pendengar HTTPS target lalu klik ID-nya.
-
Pada halaman detail pendengar, klik Certificates.
-
Pada Certificates, pada bagian Additional Certificate, klik Associate Certificate.
Pada kotak dialog Associate Certificate, konfigurasikan sertifikat tambahan berdasarkan informasi berikut, lalu klik OK.
Certificate: Pilih sertifikat yang akan diikat. Dalam contoh ini, pilih Sertifikat B.
Associated Domain Name: Pilih domain yang terkait dengan sertifikat ini yang ingin Anda percepat menggunakan Global Accelerator. Dalam contoh ini, pilih Domain 2 (
xxxtest.fun).
Langkah 6: Tambahkan aturan pengalihan
Saat pendengar HTTPS menerima permintaan, ia mencocokkan permintaan tersebut dengan aturan pengalihan kustom. Jika ada aturan yang cocok, pendengar meneruskan permintaan ke kelompok titik akhir yang sesuai. Jika tidak ada aturan kustom yang cocok, permintaan diteruskan ke kelompok titik akhir default.
Langkah-langkah berikut menjelaskan cara membuat aturan pengalihan kustom untuk kelompok titik akhir virtual Server 2. Aturan ini mengarahkan semua permintaan untuk Domain 2 (xxxtest.fun) ke Server 2.
-
Pada tab Listener, temukan pendengar HTTPS target lalu klik ID-nya.
Pada halaman detail pendengar, klik tab Forwarding Rule.
Pada tab Forwarding Rule, klik Add Forwarding Rule.
Pada bagian Add Forwarding Rule, konfigurasikan aturan pengalihan berdasarkan informasi berikut, lalu klik OK.
Parameter
Deskripsi
Name
Masukkan nama untuk aturan pengalihan.
If (Matching All Conditions)
Konfigurasikan kondisi pengalihan.
Dalam contoh ini, pilih Domain Name lalu masukkan domain yang akan dicocokkan: xxxtest.fun.
Forwarding action
Pilih jenis aksi dan target pengalihan.
Dalam contoh ini, pilih Forward to lalu pilih kelompok titik akhir virtual yang Anda buat di Langkah 4: konfigurasi kelompok titik akhir dan titik akhir.
Langkah 7: Konfigurasi rekaman CNAME
Anda harus mengarahkan Domain 1 (xxxtest.cloud) dan Domain 2 (xxxtest.fun) ke alamat CNAME instans Global Accelerator di DNS. Hal ini memastikan bahwa permintaan akses diarahkan melalui Global Accelerator.
Pada halaman Domains, temukan domain Anda (
xxxtest.cloud) lalu klik DNS settings pada kolom Actions.CatatanJika domain Anda tidak terdaftar di Alibaba Cloud, Anda harus menambahkan domain ke konsol Alibaba Cloud DNS sebelum Anda dapat mengonfigurasi rekaman DNS.
Pada halaman Pengaturan DNS, temukan rekaman A yang ada lalu klik Edit pada kolom Actions.
Pada panel Modify record, atur Record Type menjadi CNAME, ubah Record Value menjadi alamat CNAME yang ditetapkan untuk instans Global Accelerator, lalu klik Confirm.
Anda dapat menemukan alamat CNAME yang ditetapkan untuk instans Global Accelerator pada halaman Instances.
Ulangi langkah-langkah sebelumnya untuk mengubah rekaman A yang ada untuk Domain 2 (
xxxtest.fun) menjadi rekaman CNAME.
Jika Anda perlu mengembalikan hasil resolusi berdasarkan wilayah klien, pastikan Anda telah meningkatkan Alibaba Cloud DNS ke Edisi Enterprise Standard atau Enterprise Ultimate Edition. Untuk informasi lebih lanjut tentang cara meningkatkan, lihat Perbarui instans.
Setelah peningkatan, Anda dapat mengubah jalur DNS default dari rekaman A yang ada menjadi jalur regional tertentu dan menambahkan rekaman CNAME yang mengarah ke alamat CNAME yang ditetapkan untuk instans Global Accelerator.
Langkah 8: Uji konfigurasi
Uji apakah klien dapat mengakses layanan web yang dideploy di AS (Silicon Valley) melalui domain berbeda dengan akses yang dipercepat.
Topik ini menggunakan Alibaba Cloud Linux 3 sebagai contoh. Perintah uji dapat berbeda tergantung sistem operasi. Rujuk dokumentasi sistem operasi Anda untuk perintah spesifik.
Efek percepatan layanan Global Accelerator bergantung pada pengujian bisnis aktual Anda.
Uji konektivitas website
Buka jendela command-line pada komputer di area percepatan. Dalam contoh ini, area percepatan adalah Tiongkok (Hong Kong).
Jalankan perintah berikut untuk Domain 1 (
xxxtest.cloud) dan Domain 2 (xxxtest.fun) untuk memverifikasi bahwa konfigurasi CNAME telah berlaku.ping <website_domain>Jika hasil resolusi yang dikembalikan sesuai dengan CNAME instans Global Accelerator, konfigurasi CNAME telah berlaku.
[root@iZjxxx ~]# ping xxx_test.cloud PING ga-bp1xxx9.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=101 time=1.59 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=101 time=1.60 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.593/1.595/1.598/0.002 ms [root@iZjxxx ~]# ping xxx_test.fun PING ga-bp1xxx.com (8.217.xxx.xxx) 56(84) bytes of data. 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=1 ttl=96 time=1.58 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=2 ttl=96 time=1.53 ms 64 bytes from 8.217.xxx.xxx (8.217.xxx.xxx): icmp_seq=3 ttl=96 time=1.51 ms ^C --- ga-bp1xxx9.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2002ms rtt min/avg/max/mdev = 1.508/1.539/1.576/0.042 msJalankan perintah berikut untuk Domain 1 (
xxxtest.cloud) dan Domain 2 (xxxtest.fun) untuk menguji konektivitas website dan memverifikasi bahwa sertifikat diambil.curl -v https://<website_domain> --resolve <website_domain>:<listener_port>:<accelerated_IP>Hasil uji berikut untuk Domain 1 (
xxxtest.cloud) digunakan sebagai contoh. Jika output mencakup informasi sertifikat dan respons yang valid, layanan website berfungsi sebagaimana mestinya.[root@iZxxx]# curl -v https://xxx_test.cloud --resolve xxx_test.cloud:443:8.217.xxx * Added xxx_test.cloud:443:8.217.xxx to DNS cache * Rebuilt URL to: https://xxx_test.cloud/ * Hostname xxx_test.cloud was found in DNS cache * Trying 8.217.xxx... * TCP_NODELAY set * Connected to xxx_test.cloud (8.217.xxx) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=xxx_test.cloud * start date: Mar 1 00:00:00 2024 GMT * expire date: Mar 31 23:59:59 2025 GMT * subjectAltName: host "xxx_test.cloud" matched cert's "xxx_test.cloud" * issuer: C = US; O = DigiCert Inc; CN = DigiCert Global G2 TLS RSA SHA256 2020 CA1 * SSL certificate verify ok. * Using HTTP2, server supports multi-use * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x55d6e15b76b0) > GET / HTTP/2 > Host: xxx_test.cloud > User-Agent: curl/7.61.1 > Accept: */* > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! < HTTP/2 200 < date: Thu, 14 Sep 2023 09:00:09 GMT < content-type: text/html < content-length: 299 < last-modified: Mon, 11 Sep 2023 10:27:09 GMT < etag: "64feeb7d-12b" < accept-ranges: bytes < <!DOCTYPE html> <html> <head> <title>HTTP Server Test Page</title> <style> body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } </style> </head> <body> <h1>Welcome to HTTP Server Test Page!</h1> <p>This is ECS01.</p> </body> </html> * Connection #0 to host xxx_test.cloud left intact
Uji performa percepatan
Untuk menguji performa percepatan, lihat Uji performa percepatan Global Accelerator.