Umumnya, konten HTTP dan HTTPS dikirim melalui nama host yang sama saat menggunakan Cloud CDN. Meskipun banyak browser menerapkan penggunaan Transport Layer Security (TLS) dan tidak mengizinkan pengiriman konten yang tidak aman, masih ada kasus penggunaan di mana pengiriman yang tidak aman dan pengiriman yang aman harus diizinkan melalui nama host yang sama. Artikel ini membahas cara Anda dapat mencapai fungsi ini menggunakan Cloud CDN.
Tantangan
Saat klien membuat koneksi dengan server edge CDN, protokol pengiriman pengguna akhir akan dinegosiasikan. Sebagian besar platform CDN konvensional mengarahkan traffic ke jejak pengiriman masing-masing dengan:
- Mengarah ke nama domain milik CDN, menggunakan data CNAME DNS.
- Merutekan traffic ke subset server yang mendukung negosiasi TLS untuk nama domain tersebut.
Karena Cloud CDN terintegrasi dengan Cloud Load Balancing, pendekatan Cloud CDN berbeda dengan pendekatan CDN konvensional. Cloud CDN memanfaatkan alamat IP Anycast Load Balancer Aplikasi eksternal. Saat mengonfigurasi Cloud CDN, Anda memiliki alamat IP tertentu untuk mengarahkan traffic. Hal ini memerlukan konstruksi data A (untuk IPv4) dan/atau AAAA (untuk IPv6) di data DNS Anda, bukan data CNAME dengan nilai nama host.
Secara default, saat mengonfigurasi frontend load balancer,Google Cloud menetapkan alamat IP sementara secara dinamis. Karena Anda perlu mengonfigurasi konfigurasi HTTP dan HTTPS secara terpisah, hal ini dapat menyebabkan Anda memiliki dua alamat IP untuk instance Cloud CDN. Karena alamat IP data A atau AAAA yang sama digunakan untuk HTTP dan HTTPS, kasus ini tidak dapat ditangani dengan benar di DNS.
Solusi
Saat mengirimkan konten aman dan tidak aman melalui nama host yang sama, klien diarahkan ke server edge yang dapat melakukan negosiasi HTTP atau HTTPS. Agar dapat berfungsi dengan Cloud CDN, Anda dapat mencadangkan alamat IP dan mengikat alamat IP yang dicadangkan ke konfigurasi frontend HTTP dan HTTPS di Load Balancer Aplikasi eksternal.
Dalam diagram:
- permintaan masuk untuk www.example.com berasal dari klien yang menggunakan HTTP/2, HTTPS, dan HTTP.
Dua alamat IP dicadangkan, satu untuk IPv4 dan satu untuk IPv6:
- 34.95.111.204
- [2600:1901:0:b13e::]
Kedua alamat IP ini terikat ke www.example.com di Cloud DNS.
Saat mengonfigurasi Load Balancer Aplikasi eksternal, konfigurasi frontend mencakup empat aturan penerusan yang menggunakan alamat IP yang dicadangkan:
Nama Protokol IP:Port ipv4-http HTTP 34.95.111.204:80 ipv4-https HTTPS 34.95.111.204:443 ipv6-http HTTP [2600:1901:0:b13e::]:80 ipv6-https HTTPS [2600:1901:0:b13e::]:443 Untuk cache miss Cloud CDN, load balancer mendistribusikan permintaan ke origin backend, berdasarkan setelan yang ditentukan di peta URL load balancer.
Langkah 1: Mencadangkan alamat IP eksternal global
Buat alamat IPv4 atau IPv6 (atau keduanya). Untuk mendukung pengalamatan IPv4 dan IPv6, Anda harus membuat satu alamat IPv4 dan satu alamat IPv6.
Di data DNS Anda,buat data A (atau AAAA) untuk mengarahkan traffic ke alamat IP yang dicadangkan ini.
Konsol
- Di konsol Google Cloud , buka halaman External IP addresses.
- Klik Reserve static address untuk memesan alamat IPv4.
- Tetapkan Nama
ipv4-address
. - Tetapkan paket Jaringan ke Premium.
- Tetapkan IP version ke IPv4.
- Tetapkan Type ke Global.
- Klik Reserve.
Load balancer menggunakan jaringan Paket Premium, sebagaimana diperlukan saat Cloud CDN diaktifkan.
gcloud
gcloud compute addresses create ipv4-address \ --network-tier=PREMIUM \ --ip-version=IPV4 \ --global
Perhatikan alamat IPv4 yang dicadangkan:
gcloud compute addresses describe lb-ipv4-1 \ --format="get(address)" \ --global
Ulangi langkah ini untuk IPv6.
Untuk mengetahui informasi selengkapnya, lihat Mereservasi alamat IP eksternal statis baru.
Langkah 2: Ikat alamat IP yang dicadangkan ke load balancer
Bagian ini menunjukkan cara menetapkan alamat IP ke load balancer Anda. Petunjuk menyeluruh untuk menyiapkan load balancer berada di luar cakupan artikel ini. Untuk contoh penyiapan, lihat Membuat load balancer HTTPS.
Bagian konfigurasi frontend memungkinkan Anda memilih protokol yang digunakan antara klien dan load balancer.
Dalam contoh ini, Anda menggunakan HTTP dan HTTPS antara klien dan load balancer, sehingga Anda memerlukan satu atau beberapa resource sertifikat SSL untuk mengonfigurasi proxy.
Konsol
Mengonfigurasi aturan penerusan HTTP
- Di konsol Google Cloud , buka halaman Load balancing.
- Pilih load balancer Anda, lalu klik Edit.
- Di panel kiri, klik Frontend configuration.
- Di kolom Name, masukkan
ipv4-http
. - Pada kolom Protocol, pilih
HTTP
. - Tetapkam Versi IP ke
IPv4
. - Di IP address, pilih
ipv4-address
, yang Anda buat sebelumnya. - Pastikan Port ditetapkan ke
80
untuk mengizinkan traffic HTTP. - Klik Selesai.
Mengonfigurasi aturan penerusan HTTPS
- Di konsol Google Cloud , buka halaman Load balancing.
- Pilih load balancer Anda, lalu klik Edit.
- Di panel kiri, klik Frontend configuration.
- Di kolom Name, masukkan
ipv4-https
. - Pada kolom Protocol, pilih
HTTPS
. - Tetapkam Versi IP ke
IPv4
. - Di IP address, pilih
ipv4-address
, yang Anda buat sebelumnya. - Pastikan Port ditetapkan ke
443
untuk mengizinkan traffic HTTP. - Klik menu drop-down Certificate.
- Jika Anda sudah memiliki resource sertifikat SSL yang dikelola sendiri yang ingin digunakan sebagai sertifikat SSL utama, pilih sertifikat tersebut dari menu drop-down.
- Jika tidak, pilih Create a new certificate.
- Pilih Upload sertifikat saya atau Buat sertifikat yang dikelola Google.
- Jika Anda memilih Upload sertifikat saya, selesaikan langkah-langkah ini.
- Isi Name
www-ssl-cert
. - Di kolom yang sesuai, upload Public key certificate (file .crt), Certificate chain (file .csr), dan Private key (file .key).
- Klik Buat.
- Isi Name
- Jika Anda memilih Create Google managed certificate, masukkan Domain.
- Untuk menambahkan resource sertifikat selain
resource sertifikat SSL utama:
- Klik Add certificate.
- Pilih sertifikat dari daftar Certificates atau klik Create a new certificate, lalu ikuti petunjuk di atas.
- Klik Selesai.
Ulangi langkah-langkah ini untuk IPv6.
Tinjau dan selesaikan
- Di panel kiri, klik Review and finalize.
- Bandingkan setelan Anda dengan yang ingin Anda buat.
- Jika semuanya sudah benar, klik Perbarui.
gcloud
Buat proxy HTTP target untuk mengarahkan permintaan ke peta URL Anda.
gcloud compute target-http-proxies create http-lb-proxy \ --url-map=web-map
Buat proxy HTTPS target untuk mengarahkan permintaan ke peta URL Anda. Proxy ini merupakan bagian dari load balancer yang menampung sertifikat SSL untuk Load Balancing HTTPS, sehingga Anda juga memuat sertifikat pada langkah ini.
gcloud compute target-https-proxies create https-lb-proxy \ --url-map=web-map --ssl-certificates=www-ssl-cert
Buat dua aturan penerusan global untuk mengarahkan permintaan masuk ke proxy, satu untuk setiap alamat IP yang Anda buat.
-
Untuk Load Balancer Aplikasi eksternal global, gunakan perintah gcloud CLI dengan
load-balancing-scheme=EXTERNAL_MANAGED
. Setelan ini menawarkan kapabilitas pengelolaan traffic tingkat lanjut. - Untuk Load Balancer Aplikasi klasik, gunakan
load-balancing-scheme=EXTERNAL
.
gcloud compute forwarding-rules create ipv4-http \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=ipv4-address \ --global \ --target-http-proxy=http-lb-proxy \ --ports=80
gcloud compute forwarding-rules create ipv4-https \ --load-balancing-scheme=LOAD_BALANCING_SCHEME \ --network-tier=PREMIUM \ --address=ipv4-address \ --global \ --target-https-proxy=https-lb-proxy \ --ports=443
-
Untuk Load Balancer Aplikasi eksternal global, gunakan perintah gcloud CLI dengan
Setelah membuat aturan penerusan global, mungkin perlu beberapa menit untuk menerapkan konfigurasi Anda di seluruh dunia.
Langkah 3: Buat data A atau AAAA di file zona DNS Anda
Langkah terakhir dalam proses ini adalah membuat data A dan/atau AAAA di file zona DNS Anda untuk mengarah ke Cloud CDN tempat nilai nama host Anda akan merespons dengan alamat IP yang dicadangkan yang Anda tetapkan di load balancer.
Sekarang, Anda dapat menayangkan HTTP dan HTTPS melalui nama host yang sama melalui Cloud CDN.
Opsional: Mengalihkan HTTP ke HTTPS
Jika ingin mengalihkan permintaan HTTP ke load balancer HTTPS, Anda harus menambahkan load balancer HTTP parsial yang memiliki frontend, tetapi tidak memiliki backend. Frontend menerima permintaan, lalu mengalihkannya ke load balancer HTTPS. Hal ini dilakukan dengan menggunakan hal berikut:
- Aturan penerusan dengan alamat IP eksternal yang dicadangkan sama dengan yang digunakan load balancer HTTPS Anda, seperti yang ditunjukkan di halaman ini.
- Proxy HTTP target, seperti yang ditunjukkan di halaman ini.
- Peta URL yang mengarahkan traffic ke load balancer HTTPS.
Mendapatkan dukungan
Jika ada pertanyaan tentang Google Cloud dan Cloud CDN, hubungi tim Google Cloud Penjualan Anda atau hubungi kami melalui Google Cloud saluran Slack Komunitas dan posting catatan di saluran #cloud-cdn.
Apa langkah selanjutnya?
- Untuk mengetahui detail tentang konten yang di-cache, lihat Detail penge-cache-an.
- Untuk mengatasi masalah load balancer, lihat halaman pemecahan masalah load balancer.
- Untuk menyelesaikan masalah Cloud CDN, lihat halaman pemecahan masalah Cloud CDN.
- Untuk mengetahui informasi tentang cara menggunakan Cloud CDN di GKE, lihat halaman Fitur Cloud CDN di Ingress.
- Untuk memeriksa apakah Cloud CDN menyajikan respons dari cache, lihat Melihat log.
- Bersihkan penyiapan load balancer.