Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Ubah header HTTP saat Anda bermigrasi dari F5 ke Application Load Balancer di AWS
Sachin Trivedi, Amazon Web Services
Ringkasan
Saat Anda memigrasikan aplikasi yang menggunakan penyeimbang Load F5 ke Amazon Web Services (AWS) dan ingin menggunakan Application Load Balancer di AWS, memigrasikan aturan F5 untuk modifikasi header adalah masalah umum. Application Load Balancer tidak mendukung modifikasi header, tetapi Anda dapat menggunakan Amazon CloudFront sebagai jaringan pengiriman konten (CDN) dan Lambda @Edge untuk memodifikasi header.
Pola ini menjelaskan integrasi yang diperlukan dan menyediakan kode contoh untuk modifikasi header dengan menggunakan AWS CloudFront dan Lambda @Edge.
Prasyarat dan batasan
Prasyarat
Aplikasi lokal yang menggunakan penyeimbang beban F5 dengan konfigurasi yang menggantikan nilai header HTTP dengan menggunakan.
if, else
Untuk informasi selengkapnya tentang konfigurasi ini, lihat HTTP: :headerdalam dokumentasi produk F5.
Batasan
Pola ini berlaku untuk kustomisasi header load balancer F5. Untuk penyeimbang beban pihak ketiga lainnya, silakan periksa dokumentasi penyeimbang beban untuk informasi dukungan.
Fungsi Lambda yang Anda gunakan untuk Lambda @Edge harus berada di Wilayah AS Timur (Virginia N.).
Arsitektur
Diagram berikut menunjukkan arsitektur di AWS, termasuk aliran integrasi antara CDN dan komponen AWS lainnya.

Alat
Layanan AWS
Application Load Balancer ─ Application Load Balancer adalah layanan load balancing AWS yang dikelola sepenuhnya yang berfungsi pada lapisan ketujuh model Open Systems Interconnection (OSI). Ini menyeimbangkan lalu lintas di beberapa target dan mendukung permintaan perutean lanjutan berdasarkan header dan metode HTTP, string kueri, dan perutean berbasis host atau berbasis jalur.
Amazon CloudFront - Amazon CloudFront adalah layanan web yang mempercepat distribusi konten web statis dan dinamis Anda, seperti.html, .css, .js, dan file gambar, kepada pengguna Anda. CloudFront mengirimkan konten Anda melalui jaringan pusat data di seluruh dunia yang disebut lokasi tepi untuk latensi yang lebih rendah dan peningkatan kinerja.
Lambda @Edge ─ Lambda @Edge adalah ekstensi AWS Lambda yang memungkinkan Anda menjalankan fungsi untuk menyesuaikan konten yang dikirimkan. CloudFront Anda dapat membuat fungsi di Wilayah AS Timur (Virginia N.), dan kemudian mengaitkan fungsi tersebut dengan CloudFront distribusi untuk secara otomatis mereplikasi kode Anda di seluruh dunia, tanpa menyediakan atau mengelola server. Ini mengurangi latensi dan meningkatkan pengalaman pengguna.
Kode
Kode contoh berikut menyediakan cetak biru untuk memodifikasi CloudFront header respons. Ikuti instruksi di bagian Epik untuk menyebarkan kode.
exports.handler = async (event, context) => { const response = event.Records[0].cf.response; const headers = response.headers; const headerNameSrc = 'content-security-policy'; const headerNameValue = '*.xyz.com'; if (headers[headerNameSrc.toLowerCase()]) { headers[headerNameSrc.toLowerCase()] = [{ key: headerNameSrc, value: headerNameValue, }]; console.log(`Response header "${headerNameSrc}" was set to ` + `"${headers[headerNameSrc.toLowerCase()][0].value}"`); } else { headers[headerNameSrc.toLowerCase()] = [{ key: headerNameSrc, value: headerNameValue, }]; } return response; };
Epik
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat distribusi CloudFront web. | Pada langkah ini, Anda membuat CloudFront distribusi untuk memberi tahu dari CloudFront mana Anda ingin konten dikirim, dan detail tentang cara melacak dan mengelola pengiriman konten. Untuk membuat distribusi menggunakan konsol, masuk ke AWS Management Console, buka CloudFront konsol | Administrator awan |
Tugas | Deskripsi | Keterampilan yang dibutuhkan |
---|---|---|
Buat dan terapkan fungsi Lambda @Edge. | Anda dapat membuat fungsi Lambda @Edge dengan menggunakan cetak biru untuk memodifikasi header respons. CloudFront (Cetak Biru lainnya tersedia untuk kasus penggunaan yang berbeda; untuk informasi selengkapnya, lihat Lambda @Edge contoh fungsi dalam dokumentasi.) CloudFront Untuk membuat fungsi Lambda @Edge:
| Administrator AWS |
Terapkan fungsi Lambda @Edge. | Ikuti petunjuk di langkah 4 dari Tutorial: Membuat fungsi Lambda @Edge sederhana dalam CloudFront dokumentasi Amazon untuk mengonfigurasi CloudFront pemicu dan menyebarkan fungsi. | Administrator AWS |
Sumber daya terkait
CloudFront dokumentasi