Load Balancer Aplikasi eksternal global memungkinkan Anda
menyesuaikan respons error Anda sendiri saat kode status error HTTP (4xx
dan
5xx
) dibuat. Anda dapat menyesuaikan respons error untuk error yang dihasilkan oleh
load balancer dan instance backend. Anda juga dapat menyesuaikan respons error untuk kode respons error yang dihasilkan saat traffic ditolak oleh Google Cloud Armor.
Berikut contoh halaman error kustom tempat Anda dapat mengonfigurasi respons error untuk aplikasi konsumen yang menghadap eksternal dengan branding dan logo perusahaan Anda sendiri, link ke halaman terkait, dan pesan yang disesuaikan.

Dengan menggunakan kebijakan respons error kustom, Anda dapat mengonfigurasi respons error yang berbeda untuk kode status error HTTP, domain URL, jalur URL, serta kolom header dan parameter permintaan HTTP yang berbeda.
Mengembalikan respons error kustom membantu Anda meningkatkan pengalaman pengguna dengan menawarkan manfaat berikut:
- Memberikan pengalaman branding yang konsisten
- Memberikan informasi kontekstual dan relevan untuk meningkatkan kegunaan dan pengalaman pengguna
- Mengurangi dampak negatif error sisi klien dan periode nonaktif
- Meningkatkan keamanan jaringan
Jika Anda tidak mengonfigurasi kebijakan respons error kustom, objek error generik tanpa merek akan ditayangkan, seperti yang ditunjukkan pada gambar 2.

Kasus penggunaan
Fitur respons error kustom menangani banyak kasus penggunaan. Bagian ini memberikan beberapa contoh umum.
Menentukan halaman pemeliharaan Anda sendiri
Anda dapat menampilkan halaman error dengan branding dan informasi perusahaan saat backend Anda tidak berfungsi atau dalam mode pemeliharaan. Anda dapat membuat halaman error kontekstual yang berisi informasi bermanfaat seperti nomor telepon pusat kontak atau kapan pengguna harus mencoba lagi mengakses situs. Anda memiliki opsi untuk menyesuaikan halaman error berdasarkan pencocokan kondisi error seperti nama host dan kode error HTTP.
Menentukan halaman error default Anda sendiri
Anda dapat menyiapkan respons error yang disesuaikan berdasarkan kode error tertentu. Misalnya, Anda dapat menyiapkan halaman error dengan pesan "Login atau daftar" untuk kode respons HTTP 401 (Unauthorized)
. Anda juga dapat menyiapkan halaman error default yang berisi branding perusahaan dan informasi relevan lainnya untuk semua kode error HTTP seri 4xx
dan seri 5xx
lainnya.
Menentukan respons error untuk aturan keamanan
Anda dapat menampilkan halaman error kustom untuk kode respons error yang dibuat saat traffic ditolak oleh kebijakan keamanan Cloud Armor. Anda harus memastikan
bahwa Anda mengonfigurasi halaman error dengan kode error HTTP seri 4xx
atau seri 5xx
yang sama dengan yang Anda masukkan dalam aturan keamanan Cloud Armor.
Memitigasi dampak periode nonaktif
Jika berlaku, Anda dapat mengonfigurasi respons error untuk menampilkan kode status HTTP 200 (OK)
dan menayangkan halaman web statis sehingga pengguna melihat informasi yang lebih kontekstual dan bermanfaat, bukan halaman error selama periode nonaktif.
Menyesuaikan respons error berdasarkan jenis permintaan klien
Anda dapat menyesuaikan respons error berdasarkan header dan parameter permintaan HTTP—misalnya, header Content-Type
. Saat merutekan permintaan asli ke
layanan error, perutean dapat mempertimbangkan header Content-Type
untuk
menayangkan halaman web (untuk permintaan dari browser) atau JSON (untuk permintaan dari
web API).
Cara kerja kebijakan respons error kustom
Kebijakan respons error kustom dapat ditentukan di tiga tingkat resource peta URL— tingkat load balancer, tingkat domain URL, dan tingkat jalur URL.
Tingkat load balancer. Kebijakan ini diterapkan ke semua traffic yang diterima oleh load balancer.
Tingkat domain URL. Kebijakan ini diterapkan pada traffic yang diarahkan ke nama domain atau nama host tertentu, misalnya,
www.example.com
.Tingkat jalur URL. Kebijakan ini diterapkan ke traffic yang diarahkan ke jalur tertentu—misalnya,
www.example.com/images/*
. Di tingkat ini, Anda juga dapat menggunakan kondisi kecocokan lanjutan dengan header dan parameter permintaan HTTP—misalnya,Content-Type:application/json
.
Tabel berikut menunjukkan kebijakan respons error kustom yang diterapkan di tingkat load balancer, tingkat domain URL, dan tingkat jalur URL dari peta URL.
Tingkat kebijakan | Kolom API |
---|---|
Load balancer | urlMaps.defaultCustomErrorResponsePolicy |
Domain URL | pathMatchers[].defaultCustomErrorResponsePolicy |
Jalur URL |
|
Jika Anda mengonfigurasi kebijakan respons error kustom di beberapa tingkat resource peta URL, objek error yang ditentukan oleh kebijakan error kustom di tingkat terendah peta URL akan ditampilkan. Kebijakan respons error yang ditentukan di tingkat peta URL yang lebih rendah lebih spesifik dan diprioritaskan daripada kebijakan respons error yang ditentukan di tingkat peta URL yang lebih tinggi.
Misalnya, kebijakan respons error kustom di tingkat load balancer hanya diterapkan jika kebijakan cocok dengan kondisi error, dan tidak ada kebijakan yang cocok yang telah ditentukan untuk kode error di tingkat yang lebih rendah—domain URL atau jalur URL. Demikian pula, kebijakan respons error kustom di tingkat domain URL hanya diterapkan jika kebijakan cocok dengan kondisi error, dan tidak ada kebijakan yang cocok yang telah ditentukan untuk kode error di tingkat yang lebih rendah—jalur URL. Untuk mempelajari lebih lanjut konfigurasi ini, lihat Mengonfigurasi kebijakan respons error kustom terperinci untuk berbagai domain, jalur, dan kode respons error.
Tentukan beberapa aturan respons error untuk mencocokkan kode respons error HTTP
Di tingkat mana pun dalam kebijakan respons error kustom, Anda dapat menentukan beberapa aturan respons error. Aturan ini dapat mencocokkan respons error HTTP dengan kode error tertentu atau rentang kode error. Jika Anda menentukan aturan untuk rentang kode error serta aturan untuk kode error tertentu, maka aturan dengan kode error tertentu akan lebih diutamakan.
Misalnya, asumsikan bahwa Anda mengonfigurasi aturan untuk kode error 401 (Unauthorized)
dan aturan lain untuk semua kode error seri 4xx
. Jika layanan backend menampilkan kode error 401
, maka aturan yang cocok dengan error 401
akan diterapkan. Namun, jika layanan backend menampilkan kode error
403
, maka aturan untuk error 4xx
akan berlaku.
Mengganti kode respons HTTP
Aturan respons error memungkinkan Anda mengubah kode respons HTTP yang ditampilkan oleh
load balancer. Pada dasarnya, ini berarti Anda dapat mengganti kode respons yang dihasilkan oleh server dan menentukan kode respons akhir untuk permintaan. Anda dapat menentukan untuk menampilkan kode respons HTTP apa pun, termasuk
200 (OK)
, rangkaian kode respons 4xx
atau 5xx
, atau kode respons
tiga digit lainnya. Untuk mempelajari lebih lanjut cara mengganti kode respons, lihat Mengonfigurasi halaman error untuk kode error tertentu bagi host tertentu.
Jika Anda menentukan kode respons penggantian, kode tersebut akan dicatat sebagai kolom baru
overrideResponseCodeServed
dalam log load balancing. Kolom ini
diisi hanya untuk permintaan yang menerapkan kode respons penggantian
oleh kebijakan respons error kustom.
Kode status
yang login di kolom httpRequest
tidak terpengaruh.
Atribut ini merekam kode respons HTTP yang dihasilkan oleh server atau respons HTTP
yang ditampilkan oleh load balancer. Kode status ini dapat berbeda dari
kode sebenarnya yang ditayangkan ke klien jika kode respons diubah oleh kebijakan respons error
kustom.
Meng-cache respons error kustom
Respons error kustom dapat di-cache dengan menentukan kebijakan penyimpanan dalam cache negatif untuk backend yang menghasilkan error. Tujuannya adalah untuk menerapkan kontrol terperinci atas penyimpanan ke cache untuk error atau pengalihan umum. Hal ini dapat mengurangi beban pada asal Anda dan meningkatkan kualitas pengalaman pengguna akhir dengan mengurangi latensi respons.
Kebijakan caching negatif yang ditentukan untuk backend yang menghasilkan
error selalu lebih diutamakan daripada metadata Cache-Control
yang ditentukan untuk
objek error di layanan error. Selain itu, jika kode respons penggantian ditampilkan oleh load balancer, kebijakan caching negatif akan diterapkan berdasarkan nilai kode respons penggantian dan bukan berdasarkan kode respons asli yang ditampilkan backend ke load balancer. Jika kode non-error (HTTP 200
) ditampilkan sebagai kode respons penggantian, maka kebijakan penyimpanan cache negatif tidak berlaku.
Jika waktu aktif (TTL) untuk respons kegagalan belum berakhir, load balancer akan terus menayangkan konten yang di-cache tanpa merutekan permintaan ke layanan backend atau bucket backend. Namun, perilaku ini bergantung pada apakah Cloud CDN diaktifkan untuk load balancer Anda.
Cloud CDN diaktifkan untuk load balancer
Bagian ini menjelaskan perilaku load balancer saat Cloud CDN diaktifkan dan respons error kustom digunakan.
Saat permintaan diterima oleh load balancer, load balancer akan memeriksa cache Cloud CDN. Jika load balancer menemukan respons yang di-cache atas permintaan pengguna, load balancer akan menampilkan respons yang di-cache kepada pengguna. Respons yang di-cache ini dapat berupa konten yang diminta pengguna atau objek error kustom.
Jika tidak ada cache, permintaan akan diproses oleh load balancer dan dikirim ke backend.
Jika backend menampilkan respons non-error, respons tersebut akan ditampilkan kepada pengguna akhir. Namun, jika permintaan klien mengalami error (kode respons HTTP
4xx
atau5xx
), load balancer akan mencoba mendapatkan objek error kustom dari layanan error yang Anda tentukan dengan cara berikut:Load balancer memeriksa semua kebijakan respons error kustom dan mendapatkan jalur yang sesuai dari objek error kustom yang sesuai dengan kode status error dan kondisi kecocokan lainnya.
Load balancer meneruskan permintaan untuk objek error kustom ke layanan error yang Anda tentukan dalam kebijakan respons error kustom. Istilah layanan error mengacu pada bucket backend atau layanan backend yang menyajikan konten error kustom.
Load balancer menampilkan objek error kustom ke klien yang membuat permintaan. Selain itu, objek tersebut akan dikirim ke Cloud CDN untuk menyimpan dalam cache objek error selama jangka waktu yang ditentukan oleh
cdnPolicy.negativeCachingPolicy[].ttl
.
Cloud CDN dinonaktifkan untuk load balancer
Jika Cloud CDN dinonaktifkan, sebaiknya gunakan bucket backend sebagai layanan error, bukan layanan backend. Hal ini karena layanan backend tidak dapat meng-cache konten jika Cloud CDN dinonaktifkan; namun, bucket backend memiliki kemampuan penyimpanan cache bawaan dan dapat meng-cache respons error meskipun Cloud CDN dinonaktifkan.
Batasan
Respons error kustom hanya didukung dengan Load Balancer Aplikasi eksternal global. Mode regional dan klasik tidak didukung.
Jika objek error kustom tidak dapat diambil dari layanan error—misalnya, jika jalur konten salah dikonfigurasi—maka objek error generik tanpa merek akan ditayangkan.
Kebijakan respons error kustom tidak memantau atau memfilter objek yang ditampilkan oleh layanan error untuk risiko keamanan. Oleh karena itu, Anda harus berupaya keras menghilangkan kerentanan dan membatasi dampak potensi eksposur.
Respons error kustom hanya didukung di bucket Cloud Storage yang dapat dibaca secara publik.
Untuk mencegah kesalahan konfigurasi saat menggunakan bucket Cloud Storage, tinjau praktik terbaik umum untuk Cloud Storage.
Respons error kustom tidak berfungsi jika Load Balancer Aplikasi eksternal global Anda hanya memiliki bucket backend. Anda harus memiliki setidaknya satu layanan backend yang juga terpasang ke load balancer, selain bucket backend.
Header respons kustom yang ditentukan berdasarkan sumber respons error kustom tidak diterapkan ke respons keluar.
Kebijakan respons error kustom hanya berlaku untuk respons HTTP yang sebenarnya berasal dari backend. Jika respons berasal dari Google Front End (GFE), Anda mungkin melihat kode respons HTTP lain yang tidak terduga.
Respons error kustom tidak kompatibel dengan jenis permintaan berikut:
- Permintaan dengan isi yang memicu kebijakan injeksi kesalahan.
- Permintaan besar saat layanan backend mengirim respons sebelum membaca isi sepenuhnya.
- Permintaan yang menyertakan header
Authorization
. Jika permintaan menyertakan headerAuthorization
, Cloud Storage akan menampilkan responsAuthentication Required
.
Harga
Tidak ada biaya tambahan untuk menggunakan respons error kustom. Harga standar untuk Google Cloud load balancing berlaku. Untuk mengetahui informasi selengkapnya, lihat Harga.