Tambahkan listener HTTP ke instans CLB untuk meneruskan permintaan HTTP yang tidak dienkripsi. Skenario umum mencakup jaringan internal, lingkungan pengujian dan pengembangan, serta transfer data non-sensitif.
Prasyarat
Instans Classic Load Balancer telah dibuat. Buat dan kelola instans CLB.
Prosedur
Langkah 1: Konfigurasikan listener
-
Masuk ke Konsol CLB.
-
Pilih wilayah instans.
-
Gunakan salah satu metode berikut untuk membuka wizard konfigurasi listener:
-
Pada halaman Instances, temukan instans target dan klik Configure Listener pada kolom Actions.
-
Pada halaman Instances, klik ID instans target. Lalu, pada tab Listener, klik Add Listener.
-
-
Pada wizard Protocol & Listener, lengkapi pengaturan berikut lalu klik Next.
Parameter
Deskripsi
Select Listener Protocol
Pilih protokol listener.
Pilih HTTP untuk contoh ini.
Instans CLB di wilayah Meksiko tidak mendukung listener HTTP. Gunakan Application Load Balancer atau instans CLB di wilayah lain sebagai gantinya.
Backend Protocol
Ketika HTTP dipilih sebagai protokol listener, Backend Protocol secara otomatis diatur ke HTTP.
Listener Port
Port yang menerima dan meneruskan permintaan ke server backend. Nilai valid: 1 hingga 65535.
Port HTTP default: 80.
Tags
Pilih atau masukkan Tag Key dan Tag Value.
Advanced Settings
Klik Modify untuk memperluas pengaturan lanjutan.
Scheduling Algorithm
Pilih algoritma penjadwalan. Round Robin adalah nilai default.
-
Weighted Round-robin: Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan.
-
Round Robin: Permintaan didistribusikan ke server backend secara bergiliran.
Untuk detail algoritma penjadwalan dan kasus penggunaannya, lihat Scheduling algorithms.
Redirection by Listener
Jika diaktifkan, CLB mengalihkan permintaan HTTP ke listener HTTPS tertentu dengan mengembalikan kode status
302. Untuk proses lengkapnya, lihat Redirect HTTP requests to HTTPS by using a CLB instance.Sebelum mengaktifkan pengalihan, buat listener HTTPS target dan konfigurasikan sertifikatnya.
Pengalihan tidak dapat diaktifkan pada listener HTTP yang sudah ada. Hapus listener saat ini dan buat yang baru.
Session Persistence
Persistensi sesi dinonaktifkan secara default.
Jika diaktifkan, CLB mengarahkan permintaan dari klien yang sama ke server backend yang sama menggunakan cookie.
Cookie Option:
-
Insert Cookie: Tentukan hanya periode timeout cookie.
Pada permintaan pertama, CLB menyisipkan cookie (ServerId) ke dalam respons. Permintaan selanjutnya yang menyertakan cookie ini akan diteruskan ke server backend yang sama.
Session Persistence Timeout Period: Jika Anda memilih Insert Cookie, masukkan periode timeout untuk persistensi sesi.
-
Rewrite Cookie: Tentukan cookie kustom untuk disisipkan ke dalam respons. Anda harus mengelola masa kedaluwarsa dan masa aktif cookie ini di server backend Anda.
CLB menimpa cookie asli dengan cookie kustom tersebut. Permintaan selanjutnya yang menyertakan cookie baru ini akan diteruskan ke server backend yang sama.
Cookie Name: Jika Anda memilih Rewrite Cookie, masukkan nama cookie.
Access Control
Kontrol akses dinonaktifkan secara default.
Jika diaktifkan, pilih metode kontrol akses dan daftar kontrol akses (ACL) sebagai daftar putih atau blacklist untuk listener.
-
Whitelist: allows only trusted IP addresses to access SLB.. Hanya permintaan dari alamat IP atau Blok CIDR dalam ACL yang dipilih yang diteruskan. Daftar putih membawa risiko: setelah dikonfigurasi, hanya alamat IP yang terdaftar yang dapat mengakses listener.
Jika daftar putih diaktifkan tetapi ACL kosong, listener akan meneruskan semua permintaan.
-
Blacklist: denies access from specified IP addresses to SLB.. Permintaan dari alamat IP atau Blok CIDR dalam ACL yang dipilih akan diblokir.
Jika blacklist diaktifkan tetapi ACL kosong, listener akan meneruskan semua permintaan.
CatatanInstans IPv6 hanya mendukung ACL IPv6, dan instans IPv4 hanya mendukung ACL IPv4. Buat ACL.
Bandwidth Throttling for Listeners
Untuk instans CLB pay-by-bandwidth, atur bandwidth maksimum per listener untuk membatasi traffic. Jumlah total bandwidth semua listener tidak boleh melebihi total bandwidth instans.
Dinonaktifkan secara default. Semua listener berbagi bandwidth instans. Lihat CLB listeners share the bandwidth of an instance.
Penting-
Jika instans CLB yang menghadap publik memiliki bandwidth total 5 Mbps dan Anda mengalokasikan seluruh 5 Mbps ke listener A dan 0 Mbps ke listener B, listener B menjadi tidak dapat diakses. Alokasikan bandwidth ke setiap listener dengan hati-hati.
-
Jika instans CLB akses internal memiliki tiga listener dan Anda mengalokasikan total 5.120 Mbps ke listener A dan B, listener C yang tersisa menjadi tidak dapat diakses. Alokasikan bandwidth ke setiap listener dengan hati-hati.
-
Instans pay-by-data-transfer tidak memiliki bandwidth maksimum default.
Idle Connection Timeout Period
Timeout koneksi idle. Nilai valid: 1 hingga 60 detik. Default: 15 detik.
Jika tidak ada data yang ditransfer dalam periode timeout, CLB menutup koneksi. Koneksi baru akan dibuat pada permintaan berikutnya.
Catatan-
Timeout idle maksimum untuk listener CLB Lapisan 7 (HTTP/HTTPS) adalah 60 detik dan tidak dapat ditingkatkan. Jika workload Anda memerlukan timeout idle yang lebih lama, gunakan listener TCP Lapisan 4 (maksimal 900 detik) atau Application Load Balancer (ALB, timeout idle hingga 3.600 detik).
-
Pengaturan timeout koneksi berlaku untuk seluruh listener. Untuk mengatur timeout berbeda untuk server backend tertentu, konfigurasikan server tersebut dengan listener terpisah dan atur timeout pada listener tersebut.
Connection Request Timeout
Jika server backend tidak merespons dalam periode ini, CLB mengembalikan error HTTP 504 ke klien. Nilai valid: 1 hingga 180 detik. Default: 60 detik.
CatatanTimeout permintaan maksimum untuk listener CLB Lapisan 7 (HTTP/HTTPS) adalah 180 detik dan tidak dapat ditingkatkan. Untuk timeout permintaan yang lebih lama, gunakan Application Load Balancer (ALB, timeout permintaan hingga 3.600 detik).
GZIP Compression
Mengompresi jenis file tertentu. Diaktifkan secara default.
Gzip mendukung jenis file berikut:
text/xml,text/plain,text/css,application/javascript,application/x-javascript,application/rss+xml,application/atom+xml, danapplication/xml.Custom HTTP Header
Pilih header HTTP kustom yang akan ditambahkan:
-
Tambahkan header
X-Forwarded-Foruntuk mengambil alamat IP asli klien.CatatanListener CLB Lapisan 7 menggunakan X-Forwarded-For secara default untuk mengambil alamat IP klien. Ini tidak dapat dinonaktifkan. Jika header berisi beberapa alamat IP, yang pertama adalah alamat IP asli klien. Retrieve client IP addresses over a Layer 7 listener.
-
Tambahkan header
SLB-IDuntuk mengambil ID instans CLB. -
Tambahkan header
SLB-IPuntuk mengambil alamat IP instans CLB. -
Tambahkan header
X-Forwarded-Protountuk mengambil protokol listener instans CLB.
Obtain Client Source IP Address
Mengambil alamat IP asli pengunjung. Diaktifkan secara default.
Automatically Enable Listener
Menentukan apakah listener akan dijalankan setelah dibuat. Diaktifkan secara default.
-
Langkah 2: Tambahkan server backend
Tambahkan server backend untuk memproses permintaan. Gunakan kelompok server default atau buat Kelompok vServer. Lihat Server groups. Contoh ini menggunakan kelompok server default.
Listener HTTP tidak mendukung kelompok server utama/cadangan.
-
Pada langkah Backend Servers, pilih Default Server Group, lalu klik Add More.
-
Pada langkah Servers, pilih server backend yang ingin ditambahkan, lalu klik Next.
-
Pada langkah Ports/Weights, atur bobot, lalu klik Add.
Catatan-
Bobot default adalah 100. Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan.
-
Server dengan bobot 0 tidak menerima permintaan baru.
-
-
Tentukan port yang digunakan setiap server backend (Instance ECS) untuk menerima permintaan, lalu klik Next. Nilai valid: 1 hingga 65535.
Langkah 3: Konfigurasikan pemeriksaan kesehatan
CLB menggunakan pemeriksaan kesehatan untuk menentukan ketersediaan server backend, sehingga meningkatkan keandalan layanan secara keseluruhan.
-
Opsi: Pada langkah Health Check, klik Modify untuk mengubah pengaturan, lalu klik Next. Configure and manage CLB health checks.
-
Pada langkah Confirm, tinjau konfigurasi listener. Klik Modify jika perlu mengubah pengaturan apa pun.
-
Konfirmasi konfigurasi lalu klik Submit. Setelah listener dibuat, klik OK.
Listener baru muncul di halaman.
FAQ
Header respons yang dihapus oleh listener Lapisan 7
Untuk mendukung persistensi sesi, CLB memodifikasi header respons seperti Date, Server, X-Pad, dan X-Accel-Redirect dari server backend.
Solusi alternatif:
-
Tambahkan awalan pada header respons kustom (misalnya, xl-server, xl-date) agar CLB tidak memprosesnya.
-
Beralih dari listener HTTP Lapisan 7 ke listener TCP Lapisan 4.
Header Transfer-Encoding: chunked dalam respons
Gejala:
Setelah nama domain dipetakan ke load balancer Lapisan 7, header "Transfer-Encoding: chunked" muncul dalam respons HTTP saat diakses dari mesin lokal. Header ini tidak ada saat server backend diakses langsung.
Penyebab:
Load balancing Lapisan 7 menggunakan reverse proxy Tengine, yang menerapkan chunked transfer encoding pada badan respons.
Load balancing Lapisan 4 hanya meneruskan traffic dan tidak menambahkan header ini.
Dukungan WebSocket dalam listener CLB
Listener HTTP CLB mendukung WebSocket secara default. Use CLB to enable real-time messaging with WebSocket.
Bagaimana cara mengonfigurasi CLB agar hanya mengizinkan nama domain tertentu atau memblokir akses langsung melalui IP?
Listener HTTP/HTTPS (Lapisan 7) CLB mendukung aturan pengalihan berbasis nama domain dan URL, tetapi CLB tidak menyediakan fitur daftar izin atau daftar blokir domain bawaan. Anda dapat menerapkan kontrol akses berbasis domain secara tidak langsung dengan menggabungkan aturan pengalihan dan Kelompok vServer. Perlu dicatat bahwa ini adalah kontrol akses, bukan perlindungan keamanan. Untuk melindungi dari serangan seperti serangan CC dan Injeksi SQL, gunakan Web Application Firewall (WAF).
Blokir domain yang tidak cocok atau akses langsung melalui IP (kebijakan fallback)
-
Buat Kelompok vServer kosong tanpa menambahkan server backend.
-
Atur tujuan pengalihan default listener (kelompok server yang menerima traffic saat tidak ada aturan pengalihan yang cocok) ke Kelompok vServer kosong ini.
-
Konfigurasikan aturan pengalihan berbasis domain yang mengarahkan traffic yang sesuai dengan domain target ke Kelompok vServer backend sebenarnya.
Dengan konfigurasi ini, permintaan yang sesuai dengan aturan pengalihan akan diarahkan ke Kelompok vServer backend yang sesuai, sedangkan permintaan yang tidak sesuai dengan aturan pengalihan apa pun—termasuk akses langsung melalui IP dan permintaan dari domain yang tidak dikenali—akan dialihkan ke Kelompok vServer kosong yang ditetapkan sebagai tujuan pengalihan default dan tidak dapat mencapai backend karena tidak tersedia server backend.
Blokir akses dari domain tertentu
Menggunakan Kelompok vServer kosong yang dibuat pada skenario sebelumnya, buat aturan pengalihan yang mengarahkan domain yang ingin diblokir ke Kelompok vServer kosong tersebut. Permintaan dari domain tersebut kemudian akan diblokir karena tidak tersedia server backend.
Dokumen Terkait
-
Untuk lingkungan produksi, gunakan HTTPS untuk transmisi terenkripsi. Add an HTTPS listener.
-
Topik tentang kelompok server:
-
Untuk memahami cara kerja pemeriksaan kesehatan, lihat CLB health checks. Untuk petunjuk konfigurasi pemeriksaan kesehatan, lihat Configure and manage CLB health checks.
-
Untuk menambahkan aturan pengalihan berbasis nama domain atau URL ke listener HTTP, lihat Forward requests based on domain names or URLs. CLB mengarahkan traffic yang tidak sesuai dengan aturan pengalihan apa pun ke tujuan pengalihan default listener (kelompok server fallback). Jika server backend Anda tidak berada dalam kelompok server fallback tersebut, Anda harus secara eksplisit mengonfigurasi aturan pengalihan untuk mengarahkan traffic ke kelompok server yang sesuai. Jika tidak, CLB tidak dapat meneruskan traffic tersebut.
-
Untuk mengambil alamat IP klien dengan listener HTTP, lihat Retrieve client IP addresses over a Layer 7 listener.