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:
- Tingkat Jaringan Standar
-
Untuk men-deploy Load Balancer Aplikasi eksternal global untuk cluster GKE, gunakan pengontrol Gateway GKE. Untuk mengetahui petunjuk penyiapan, lihat Men-deploy Gateway.
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.
|