Jika aplikasi Anda menggunakan HTTP dan tidak memerlukan enkripsi, Anda dapat menambahkan listener HTTP ke instans Classic Load Balancer (CLB) untuk meneruskan permintaan HTTP. Metode ini cocok untuk skenario seperti komunikasi jaringan internal, lingkungan pengembangan dan pengujian, atau transfer informasi non-sensitif.
Prasyarat
Instans Classic Load Balancer (CLB) telah dibuat. Untuk informasi selengkapnya, lihat Buat dan kelola instans CLB.
Prosedur
Langkah 1: Konfigurasikan listener
Masuk ke Konsol Classic Load Balancer (CLB).
Pilih wilayah tempat instans Anda berada.
Gunakan salah satu metode berikut untuk membuka wizard konfigurasi listener:
Pada halaman Instance Management, temukan instans yang dituju, lalu pada kolom Actions, klik Listener Configuration Wizard.
Pada halaman Instance Management, klik ID instans yang dituju. Pada tab Listeners, klik Add Listener.
Pada langkah Protocol & Listener, atur parameter yang diperlukan lalu klik Next.
Konfigurasi Listener
Deskripsi
Select Listener Protocol
Pilih jenis protokol untuk listener.
Pada topik ini, HTTP dipilih.
Instans CLB di wilayah Meksiko tidak mendukung listener HTTP. Gunakan Application Load Balancer (ALB) atau buat instans CLB di wilayah lain.
Backend Protocol
Saat protokol listener adalah HTTP, Backend Protocol adalah HTTP.
Listening Port
Port listener yang menerima permintaan dan meneruskannya ke server backend. Range port-nya adalah 1 hingga 65535.
Port default untuk HTTP adalah 80.
Tag
Pilih atau masukkan Tag Key dan Tag Value.
Advanced Configuration
Klik Modify untuk memperluas konfigurasi lanjutan.
Scheduling Algorithm
Pilih algoritma penjadwalan. Secara default, Round-Robin (RR) dipilih.
Weighted Round-Robin (WRR): Server backend dengan bobot lebih tinggi menerima lebih banyak permintaan.
Round-Robin (RR): Permintaan didistribusikan ke server backend secara berurutan.
Untuk informasi selengkapnya tentang algoritma penjadwalan dan skenarionya, lihat Algoritma penjadwalan untuk Server Load Balancer.
Listener Redirection
Jika diaktifkan, CLB mengembalikan kode status
302untuk permintaan yang diterima oleh listener HTTP dan mengalihkannya ke listener HTTPS yang ditentukan. Untuk proses lengkapnya, lihat Alihkan permintaan HTTP ke HTTPS menggunakan CLB.Sebelum mengaktifkan pengalihan listener, pastikan listener HTTPS tujuan telah dibuat dan sertifikat telah dikonfigurasi.
Anda tidak dapat mengaktifkan pengalihan listener untuk listener HTTP yang sudah ada. Anda harus menghapus listener tersebut dan membuat yang baru.
Enable Session Persistence
Persistensi sesi dinonaktifkan secara default.
Setelah Anda mengaktifkan persistensi sesi, SLB mendistribusikan permintaan dari client yang sama ke server backend yang sama. Persistensi sesi untuk HTTP berbasis cookie.
Cookie Handling Method:
Insert cookie: Anda hanya perlu menentukan waktu kedaluwarsa cookie.
Saat client mengirim permintaan pertama, SLB menyisipkan cookie (khususnya, ServerId) ke dalam respons. Saat client mengirim permintaan berikutnya yang berisi cookie ini, SLB meneruskan permintaan tersebut ke server backend yang sebelumnya dicatat.
Session Persistence Timeout: Saat Anda memilih Insert cookie, masukkan periode timeout untuk persistensi sesi.
Rewrite cookie: Anda dapat menentukan cookie yang akan disisipkan ke respons HTTP atau HTTPS sesuai kebutuhan. Anda harus mengelola waktu kedaluwarsa dan masa berlaku cookie ini di server backend Anda.
Saat SLB mendeteksi cookie kustom, SLB menulis ulang cookie aslinya. Saat client mengirim permintaan berikutnya yang berisi cookie baru ini, SLB meneruskan permintaan tersebut ke server backend yang sebelumnya dicatat.
Cookie Name: Saat Anda memilih Rewrite cookie, masukkan nama cookie tersebut.
Enable Access Control
Kontrol akses dinonaktifkan secara default.
Setelah Anda mengaktifkan kontrol akses, pilih metode kontrol akses dan tentukan grup kebijakan kontrol akses untuk digunakan sebagai daftar putih atau blacklist untuk listener.
Whitelist: Allows Specified IP Addresses to Access the SLB Instance. Hanya permintaan dari alamat IP atau blok CIDR yang ditentukan dalam ACL jaringan yang diteruskan. Daftar putih berlaku untuk skenario di mana Anda ingin mengizinkan akses hanya dari alamat IP tertentu. Layanan Anda mungkin terganggu jika daftar putih tidak dikonfigurasi dengan benar. Setelah daftar putih dikonfigurasi, hanya permintaan dari alamat IP yang ditambahkan ke daftar putih yang diteruskan oleh listener.
Jika daftar putih dikonfigurasi tetapi tidak ada alamat IP yang ditambahkan ke daftar putih, listener meneruskan semua permintaan.
Blacklist: Forbids Specified IP Addresses to Access the SLB Instance. Permintaan dari alamat IP atau blok CIDR yang ditentukan dalam ACL jaringan ditolak. Blacklist berlaku untuk skenario di mana Anda ingin menolak akses dari alamat IP tertentu.
Jika blacklist dikonfigurasi tetapi tidak ada alamat IP yang ditambahkan ke blacklist, listener meneruskan semua permintaan.
Whitelist: Hanya permintaan dari alamat IP atau blok CIDR yang ditentukan dalam ACL jaringan yang diteruskan. Daftar putih berlaku untuk skenario di mana Anda ingin mengizinkan akses hanya dari alamat IP tertentu. Layanan Anda mungkin terganggu jika daftar putih tidak dikonfigurasi dengan benar. Setelah daftar putih dikonfigurasi, hanya permintaan dari alamat IP yang ditambahkan ke daftar putih yang diteruskan oleh listener.
Jika daftar putih dikonfigurasi tetapi tidak ada alamat IP yang ditambahkan ke daftar putih, listener meneruskan semua permintaan.
Blacklist: Permintaan dari alamat IP atau blok CIDR yang ditentukan dalam ACL jaringan ditolak. Blacklist berlaku untuk skenario di mana Anda ingin menolak akses dari alamat IP tertentu.
Jika blacklist dikonfigurasi tetapi tidak ada alamat IP yang ditambahkan ke blacklist, listener meneruskan semua permintaan.
CatatanInstans IPv6 hanya dapat dikaitkan dengan grup kebijakan kontrol akses IPv6, dan instans IPv4 hanya dapat dikaitkan dengan grup kebijakan kontrol akses IPv4. Untuk informasi selengkapnya, lihat Buat grup kebijakan kontrol akses.
Enable Listener Bandwidth Throttling
Untuk instans SLB bayar-per-bandwidth, Anda dapat menetapkan bandwidth maksimum untuk setiap listener guna membatasi trafiknya. Jumlah nilai bandwidth maksimum semua listener tidak boleh melebihi bandwidth instans.
Secara default, fitur ini dinonaktifkan, dan semua pendengar berbagi total bandwidth instans. Untuk informasi tentang cara bandwidth dibagikan, lihat Pendengar berbagi bandwidth instance SLB.
PentingMisalnya, bandwidth maksimum instans CLB akses Internet adalah 5 Mbit/s, dan Anda mengonfigurasi dua listener. Anda mengalokasikan bandwidth 5 Mbit/s untuk Listener A, dan tidak mengalokasikan bandwidth untuk Listener B. Dalam kasus ini, Listener B tidak dapat diakses. Berhati-hatilah saat mengalokasikan bandwidth.
Jika tiga listener dikonfigurasi untuk instans CLB akses internal, dan total bandwidth yang dialokasikan untuk Listener A dan Listener B adalah 5.120 Mbit/s, maka Listener C tidak dapat diakses. Berhati-hatilah saat mengalokasikan bandwidth.
Jika digunakan instans CLB bayar-berdasarkan-transfer-data, bandwidth listener tidak dibatasi secara default.
Connection Timeout
Jumlah maksimum waktu koneksi TCP antara instans SLB dan client dapat tetap idle. Nilainya harus antara 1 hingga 60 detik. Nilai default-nya adalah 15 detik.
Jika tidak ada permintaan yang diterima dalam periode timeout, SLB sementara menutup koneksi. Saat permintaan berikutnya tiba, koneksi baru dibuat.
CatatanRequest Timeout
Periode di mana server backend harus memberikan respons. Jika server backend tidak merespons dalam periode timeout, SLB berhenti menunggu dan mengembalikan kode kesalahan HTTP 504 ke client.
Nilainya harus antara 1 hingga 180 detik. Nilai default-nya adalah 60 detik. Jika Anda memerlukan timeout permintaan yang lebih lama, gunakan ALB, yang mendukung timeout maksimum hingga 3600 detik.
Gzip Data Compression
Aktifkan fitur ini untuk mengompresi file jenis tertentu. Jika Anda menonaktifkan fitur ini, tidak ada file yang dikompresi. Kompresi data Gzip 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.Additional HTTP Header Fields
Pilih field header HTTP kustom yang akan ditambahkan:
Tambahkan header
X-Forwarded-Foruntuk mendapatkan alamat IP asal klien.CatatanListener lapisan 7 SLB menggunakan header X-Forwarded-For untuk memperoleh alamat IP asal klien secara default. Anda tidak dapat menonaktifkan fitur ini. Jika beberapa alamat IP diperoleh dari field ini, alamat IP pertama adalah alamat IP asal. Untuk informasi selengkapnya, lihat Dapatkan alamat IP asal klien melalui listener lapisan 7 SLB.
Tambahkan header
SLB-IDuntuk mendapatkan ID instans SLB.Tambahkan header
SLB-IPuntuk mendapatkan alamat IP instans SLB.Tambahkan header
X-Forwarded-Protountuk mendapatkan protokol listener SLB.
Get Originating IP Address
Dapatkan alamat IP asal pengunjung. Fitur ini diaktifkan secara default.
Automatically Start Listener After Creation
Tentukan apakah akan menjalankan listener SLB setelah konfigurasi selesai. Fitur ini diaktifkan secara default.
Langkah 2: Tambahkan server backend
Anda harus menambahkan server backend untuk memproses permintaan antarmuka depan. Anda dapat menggunakan kelompok server default yang dikonfigurasi untuk instans atau mengonfigurasi kelompok vServer untuk listener. Untuk informasi selengkapnya, lihat Kelompok server SLB. Langkah-langkah berikut menggunakan kelompok server default sebagai contoh.
Listener HTTP tidak mendukung kelompok server utama/cadangan.
Langkah 3: Konfigurasikan pemeriksaan kesehatan
FAQ
Mengapa beberapa parameter dalam header respons dari server backend dihapus setelah permintaan diteruskan oleh instans SLB lapisan 7?
Untuk menerapkan persistensi sesi, SLB memodifikasi parameter seperti Date, Server, X-Pad, dan X-Accel-Redirect dalam header respons dari server backend.
Solusi:
Saat menambahkan header pesan kustom ke header respons server backend, tambahkan awalan seperti `xl-server` atau `xl-date` agar header tersebut tidak diproses oleh SLB.
Ubah listener HTTP lapisan 7 menjadi listener TCP lapisan 4.
Mengapa field Transfer-Encoding: chunked ditambahkan ke header permintaan HTTP?
Fenomena:
Setelah nama domain dipetakan ke titik akhir instans SLB lapisan 7, field `Transfer-Encoding: chunked` ditambahkan ke header permintaan HTTP saat nama domain diakses dari host lokal. Field ini tidak muncul saat server backend diakses langsung dari host lokal.
Penyebab:
Hal ini terjadi karena load balancing lapisan 7 diimplementasikan berdasarkan reverse proxy Tengine. Field `Transfer-Encoding` menunjukkan cara server web mengenkoding isi pesan respons. Misalnya, `Transfer-Encoding: chunked` menandakan bahwa server web menggunakan chunked transfer encoding untuk isi pesan respons.
Pada load balancing lapisan 4, SLB hanya meneruskan trafik sehingga field ini tidak ditambahkan.
Bagaimana cara mengonfigurasi listener SLB agar mendukung protokol WebSocket?
Listener HTTP SLB mendukung protokol WebSocket secara default. Untuk informasi selengkapnya, lihat Gunakan WebSocket untuk mendorong pesan secara real time dengan SLB.
Referensi
Di lingkungan produksi, kami merekomendasikan penggunaan HTTPS untuk transmisi data terenkripsi. Untuk informasi selengkapnya, lihat Tambahkan listener HTTPS.
Untuk informasi tentang operasi kelompok server, lihat topik berikut:
Untuk informasi mengenai cara kerja pemeriksaan kesehatan, lihat Pemeriksaan kesehatan untuk SLB. Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter pemeriksaan kesehatan, lihat Konfigurasi dan kelola pemeriksaan kesehatan untuk SLB.
Untuk informasi tentang algoritma penjadwalan untuk SLB, lihat Algoritma penjadwalan untuk SLB.
Untuk menambahkan aturan pengalihan berdasarkan nama domain atau URL ke listener HTTP, lihat Teruskan permintaan berdasarkan nama domain atau path URL.
Jika Anda ingin server backend memperoleh alamat IP asal klien saat menggunakan listener HTTP, lihat Dapatkan alamat IP asal klien melalui listener lapisan 7 SLB.