Merencanakan migrasi ke Load Balancer Aplikasi eksternal global

Jika Anda adalah pengguna Load Balancer Aplikasi klasik, pastikan Anda meninjau halaman ini jika berencana untuk bermigrasi ke Load Balancer Aplikasi eksternal global, atau jika Anda merencanakan deployment baru dengan Load Balancer Aplikasi eksternal global.

Perbedaan fitur

Fitur berikut tidak didukung dengan Load Balancer Aplikasi eksternal global. Keduanya hanya tersedia dengan Load Balancer Aplikasi klasik:

Perbedaan bidang data

Tabel berikut memperjelas perbedaan pada bidang data antara Load Balancer Aplikasi klasik dan Load Balancer Aplikasi eksternal global. Perbedaan ini memengaruhi cara load balancer merespons beberapa peristiwa umum.

Acara Respons Load Balancer Aplikasi klasik Respons Load Balancer Aplikasi eksternal global
Kode status/error
Semua backend tidak responsif Menampilkan HTTP 502 Menampilkan HTTP 503
Permintaan menggunakan cipher SSL yang diblokir Menampilkan HTTP 502 Menampilkan HTTP 503
Koneksi upstream awal direset oleh backend Menampilkan HTTP 502 Menampilkan HTTP 503
Upgrade koneksi gagal (misalnya, saat mengupgrade ke Websockets) Menampilkan HTTP 400 Menampilkan HTTP 403
Header terlalu besar Menampilkan HTTP 413 Menampilkan HTTP 431
Kuota dan batas
Konfigurasi peta URL Ada perbedaan yang signifikan dalam batas konfigurasi peta URL antara kedua load balancer ini. Untuk mengetahui detailnya, lihat dokumentasi Kuota: Peta URL.
Penanganan header
Permintaan menggunakan metode HTTP kustom tanpa isi Menambahkan header Transfer Encoding: Chunked ke permintaan yang dikirim ke backend Menambahkan header Content-Length: 0 ke permintaan yang dikirim ke backend
Format header X-Forwarded-For yang ditambahkan ke permintaan yang dikirim ke backend Menggunakan pembatas ', ' di antara IP Menggunakan pembatas ',' di antara IP (tanpa spasi setelah koma)
Penyimpanan kasus header Casing header dipertahankan Semua kunci header diubah menjadi huruf kecil
Header berulang dengan nama yang sama Diizinkan Header berulang dapat digabungkan menjadi satu header, dengan nilai yang ditambahkan sesuai urutan dan dipisahkan koma, seperti yang diizinkan oleh RFC 7230.
(khusus HTTP/1.1) Nama header tidak valid (misalnya, karakter yang tidak didukung di header) Diizinkan (untuk HTTP/1.1) Menampilkan HTTP 502 (untuk HTTP/1.1)
(Khusus HTTP/1.1) Header Content-Length berulang (tetapi sama) yang diminta Diizinkan (untuk HTTP/1.1) Menampilkan HTTP 502 (untuk HTTP/1.1)
(khusus HTTP/1.1) Beberapa host di header Jika 2 host atau lebih ditambahkan, dan host pertama valid, header akan diterima Jika 2 host atau lebih ditambahkan, dan salah satunya tidak valid, load balancer akan menampilkan HTTP 502
(khusus HTTP/1.1) header Connection: Keep-Alive Menambahkan Keep-Alive header dalam permintaan yang dikirim ke backend secara default Tidak menambahkan header ini secara default
Meminta penanganan
Garis miring terbalik dalam permintaan URL tidak berubah Konversikan ke garis miring
Gabungkan garis miring duplikat dalam permintaan Garis miring terpisah Menggabungkan garis miring
`#` di jalur permintaan Diizinkan Menampilkan HTTP 400
(Khusus HTTP/1.1) Karakter ilegal di jalur permintaan (misalnya, `\\x7f\\x7f`) Diizinkan (untuk HTTP/1.1) Menampilkan HTTP 502 (untuk HTTP/1.1)
Distribusi traffic (konfigurasi peta URL)
Permintaan klien menyertakan nomor port Nomor port akan diabaikan meskipun Anda telah mengonfigurasi host dengan port di peta URL. Hanya nama host yang dipertimbangkan.
Misalnya, permintaan untuk example.com:5000 dicocokkan dengan layanan backend untuk example.com.
Nama host dan nomor port akan dipertimbangkan.
Misalnya, permintaan untuk example.com:5000 dicocokkan dengan layanan backend untuk example.com:5000. Jika tidak ada kecocokan, layanan backend default akan digunakan.