Pendengar memeriksa permintaan koneksi. Jika aplikasi Anda—seperti aplikasi web atau game seluler—perlu memeriksa konten data, Anda dapat menambahkan pendengar HTTP untuk meneruskan permintaan HTTP.
Prasyarat
Instans Application Load Balancer (ALB) telah dibuat. Untuk informasi selengkapnya, lihat Buat dan kelola instans ALB.
Kelompok server backend telah dibuat. Untuk informasi selengkapnya, lihat Buat dan kelola kelompok server.
Prosedur
Topik ini menjelaskan dua metode yang dapat Anda gunakan untuk membuat pendengar HTTP.
Buat Pendengar HTTP: Anda dapat menyesuaikan konfigurasi lanjutan dan fitur lain sesuai kebutuhan bisnis Anda.
Pembuatan cepat: Buat pendengar HTTP dengan cepat hanya dengan mengonfigurasi protokol pendengar, port pendengar, dan kelompok server backend.
Buat pendengar HTTP
Masuk ke Konsol Application Load Balancer (ALB).
Di bilah navigasi atas, pilih wilayah tempat instans ALB berada.
Gunakan salah satu metode berikut untuk membuka wizard konfigurasi pendengar:
Di halaman Instances, klik Create Listener di kolom Actions pada instans target.
Di halaman Instances, klik ID instans ALB yang ingin Anda kelola. Di tab Listener, klik Create Listener.
Di langkah Configure Listener, konfigurasikan parameter berikut, lalu klik Next.
Konfigurasi pendengar
Catatan
Listener Protocol
Pilih protokol pendengar.
Dalam contoh ini, HTTP dipilih.
Listener Port
Masukkan port pendengar yang menerima permintaan dan meneruskannya ke server backend. Nilai port yang valid berkisar dari 1 hingga 65535. Biasanya, HTTP menggunakan port 80 dan HTTPS menggunakan port 443.
CatatanPada instans ALB yang sama, port pendengar harus unik untuk setiap protokol. Pendengar HTTP dan HTTPS tidak boleh menggunakan port yang sama.
Dalam contoh ini, masukkan 80.
Listener Name
Masukkan nama untuk pendengar.
Tag
Atur tag key dan tag value.
Setelah menetapkan tag, Anda dapat menyaring pendengar berdasarkan tag di tab Listener.
Advanced Settings
Klik Modify untuk memperluas konfigurasi lanjutan.
Idle Connection Timeout Period
Atur timeout koneksi idle. Nilai yang valid: 1 hingga 600 detik. Nilai default: 15 detik. Untuk meningkatkan kuota ini, buka Quota Center.
Jika tidak ada permintaan akses yang tiba dalam periode timeout, Server Load Balancer sementara memutus koneksi saat ini dan membuat koneksi baru ketika permintaan berikutnya tiba.
CatatanFitur ini tidak berlaku untuk permintaan HTTP/2.
Connection Request Timeout
Atur timeout permintaan ke nilai antara 1 hingga 600 detik. Nilai default adalah 60 detik. Untuk meningkatkan kuota, ajukan permintaan di Quota Center.
Jika server backend tidak merespons dalam periode timeout, Server Load Balancer berhenti menunggu dan mengembalikan kode kesalahan HTTP 504 ke client.
Compression
Aktifkan konfigurasi ini untuk mengompresi jenis file tertentu. Nonaktifkan untuk melewati kompresi untuk semua jenis file.
Brotli saat ini mendukung kompresi untuk semua jenis file.
Gzip mendukung jenis file berikut:
text/xml,text/plain,text/css,application/javascript,application/x-javascript,application/rss+xml,application/atom+xml,application/xml, danapplication/json.
CatatanKompresi data hanya dipicu ketika nilai
Content-Lengthdalam respons melebihi 1.024 byte.Ketika permintaan client mendukung algoritma kompresi Brotli dan Gzip, ALB menggunakan Brotli karena lebih efisien.
Ketika permintaan client hanya mendukung Gzip dan jenis file tidak didukung oleh Gzip, ALB tidak mengompresi file tersebut.
Retrieve Client IP
Aktifkan instans ALB untuk mengambil IP sumber client sebenarnya dari header X-Forwarded-For. Setelah mengaktifkan fitur ini, atur daftar IP tepercaya.
Atur daftar IP tepercaya ke
0.0.0.0/0: Instans ALB menggunakan alamat IP paling kiri dalam header X-Forwarded-For sebagai IP sumber client sebenarnya.Atur daftar IP tepercaya ke
proxy1 IP;proxy2 IP;..: Instans ALB memindai header X-Forwarded-For dari kanan ke kiri dan menggunakan alamat IP pertama yang tidak termasuk dalam daftar tepercaya sebagai IP sumber client sebenarnya.
Skenario
Ketika header X-Forwarded-For berisi beberapa alamat IP—misalnya,
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …—alamat paling kiri adalah IP client sebenarnya. Untuk menggunakan fitur pencocokan SourceIp dan QPS (rate limiting based on client source IP) dalam aturan pengalihan ALB, aktifkan sakelar Retrieve Real Client Source IP agar ALB dapat mengidentifikasi IP sumber client sebenarnya dari header X-Forwarded-For. Untuk informasi selengkapnya, lihat Tambahkan aturan pengalihan.CatatanHanya instans ALB Edisi Standar dan ALB yang ditingkatkan WAF yang mendukung fitur Retrieve Real Client Source IP. Instans ALB Edisi Dasar tidak mendukung fitur ini.
Additional HTTP Header Fields
Pilih field header HTTP kustom yang ingin Anda tambahkan:
Pilih apakah akan mengaktifkan field header
X-Forwarded-Foruntuk mendapatkan alamat IP asal client.Jika Anda memilih
Add X-Forwarded-For to preserve client IP addresses, ALB dapat menambahkan headerX-Forwarded-Forke atau menghapus headerX-Forwarded-Fordari permintaan sebelum meneruskan permintaan ke server backend.Add (default)
Jika Anda memilih Add, ALB menambahkan alamat IP hop terakhir ke header X-Forwarded-For dalam permintaan sebelum meneruskan permintaan ke server backend. Jika permintaan tidak berisi header X-Forwarded-For, ALB membuat header X-Forwarded-For dengan nilai alamat IP hop terakhir dan menambahkannya ke permintaan. Header X-Forwarded-For dalam permintaan mungkin berisi beberapa alamat IP yang dipisahkan koma (,).
Remove
Jika Anda memilih Remove, ALB menghapus header
X-Forwarded-Fordari permintaan sebelum meneruskan permintaan ke server backend.
Jika Anda tidak memilih
Add X-Forwarded-For to preserve client IP addresses, ALB tidak melakukan apa pun terhadap headerX-Forwarded-Fordalam permintaan sebelum meneruskan permintaan ke server backend.
Format:
X-Forwarded-For: <client-ip-address>, <proxy1>, <proxy2>, …Tambahkan field header
SLB-IDuntuk mendapatkan ID instans SLB.Tambahkan field header
X-Forwarded-Protountuk mendapatkan protokol pendengar instans.Tambahkan field header
X-Forwarded-Portuntuk mendapatkan port pendengar instans.Tambahkan field header
X-Forwarded-Hostuntuk mendapatkan nama domain yang digunakan client untuk mengakses instans SLB.Tambahkan field header
X-Forwarded-Client-srcportuntuk mendapatkan port yang digunakan client untuk mengakses instans SLB.
CatatanHeader X-Forwarded-For yang dibuat dan ditambahkan ke permintaan oleh ALB selalu diawali huruf "X" kapital.
Kecuali untuk X-Forwarded-For, untuk header yang disebutkan di atas, ALB memprosesnya mengikuti aturan yang dijelaskan di atas. Untuk header lainnya, ALB mempertahankannya dalam bentuk aslinya dalam permintaan.
Di langkah Select Server Group, pilih kelompok server, tinjau server backend, lalu klik Next.
Di langkah Confirm, tinjau konfigurasi, lalu klik Submit.
Buat pendengar HTTP secara cepat
Untuk membuat pendengar secara cepat, Anda hanya perlu mengonfigurasi protokol pendengar, port pendengar, dan kelompok server backend.
Masuk ke Konsol Application Load Balancer (ALB).
Di bilah navigasi atas, pilih wilayah tempat instans ALB berada.
Di halaman Instances, temukan instans target dan klik ID instansnya.
Klik tab Listeners. Di tab Listeners, klik Quick Create Listener.
Di kotak dialog Quick Create Listener, konfigurasikan parameter berikut, lalu klik OK.
Konfigurasi Pendengar
Deskripsi
Listener Protocol
Pilih protokol pendengar. Dalam topik ini, HTTP dipilih.
Listener Port
Port frontend yang menerima dan meneruskan permintaan ke server backend.
Pilih port umum atau masukkan nomor port. Nomor port harus berada dalam rentang 1 hingga 65535.
Select Resource Group
Pilih kelompok resource yang berisi kelompok server backend.
Server Group
Pilih tipe kelompok server backend dan tambahkan server backend.
FAQ
Bagaimana cara mencegah spoofing field X-Forwarded-For?
Tentukan field header di produk lain untuk mencatat alamat IP asal:
Misalnya, dalam arsitektur Client > CDN > WAF > Server Load Balancer > ECS, CDN meneruskan alamat IP asal dalam field header HTTP
Ali-Cdn-Real-Ip. Saat Anda menambahkan layanan ke WAF, atur metode deteksi IP client untuk menggunakan field headerAli-Cdn-Real-Ip. Di server backend Nginx, konfigurasikan variabel log untuk alamat IP asal sebagai$http_Ali_Cdn_Real_Ip.Beralih ke pendengar Lapisan 4 (NLB atau CLB). Server backend kemudian dapat secara otomatis mendapatkan alamat IP asal. Untuk informasi selengkapnya, lihat Dapatkan alamat IP asal di server backend melalui pendengar Lapisan 4 CLB.
Apakah ALB mendukung protokol WebSocket?
Pendengar HTTP ALB mendukung protokol WebSocket secara default. Untuk informasi selengkapnya, lihat tutorial Gunakan protokol WebSocket dengan ALB untuk mendorong informasi secara real time.
Referensi
ALB menyediakan serangkaian aturan pengalihan lanjutan yang lengkap. Untuk informasi selengkapnya, lihat Kelola aturan pengalihan untuk pendengar.
Jika Anda menemui kode status abnormal, lihat Kode status ALB.
Jika Anda mengalami masalah pemeriksaan kesehatan, lihat Pemecahan masalah pemeriksaan kesehatan ALB.
Untuk tutorial berbasis skenario lainnya, lihat berikut ini:
Alihkan permintaan HTTP ke pendengar HTTPS: Gunakan aturan pengalihan pendengar ALB untuk mengalihkan permintaan HTTP ke HTTPS. Ini memastikan enkripsi data saat transit, mencegah serangan man-in-the-middle dan kebocoran data, serta membantu Anda membangun arsitektur jaringan yang memenuhi standar keamanan modern.
Gunakan fitur traffic mirroring untuk mencerminkan traffic produksi ke lingkungan staging: Gunakan fitur traffic mirroring ALB untuk mensimulasikan traffic langsung dengan mencerminkan traffic online ke server backend di lingkungan staging. ALB secara otomatis membuang tanggapan dari server backend yang dicerminkan ini, sehingga aktivitas pengujian tidak memengaruhi beban kerja online Anda.
Gunakan ALB untuk menerapkan rilis canary: Konfigurasikan aturan pengalihan pendengar untuk mengarahkan sebagian permintaan ke versi aplikasi baru berdasarkan kondisi tertentu atau bobot traffic untuk kelompok server yang berbeda. Hal ini memungkinkan Anda memvalidasi stabilitas versi baru secara bertahap dan mencapai rilis canary.