Membuat halaman kesalahan kustom Application Gateway

Application Gateway memungkinkan Anda membuat halaman kesalahan yang dikustomisasi alih-alih menampilkan halaman default. Anda dapat menggunakan branding dan tata letak untuk kesalahan yang terkait dengan kode respons yang berbeda. Beberapa skenario untuk mengatur halaman kesalahan kustom adalah

  • Memperlihatkan halaman pemeliharaan atau status untuk kode respons Gateway Buruk 502. Ini berguna ketika gateway aplikasi Anda tidak memiliki server backend untuk merutekan lalu lintas selama pemeliharaan terjadwal atau masalah tak terduga dengan server kumpulan backend.
  • Menampilkan halaman akses tidak sah yang dikustomisasi untuk kode respons terlarang 403 yang terjadi saat WAF berada dalam mode pencegahan dan memblokir lalu lintas berbahaya.
  • Menampilkan halaman bermerk perusahaan dengan detail kontak jika terjadi masalah.

Kode respons yang didukung

Halaman kesalahan kustom didukung untuk kode respons berikut:

Kode respons Deskripsi
400 Permintaan buruk (Dalam pratinjau)
403 Terlarang
405 Metode tidak diizinkan (Dalam pratinjau)
408 Batas waktu permintaan (Dalam pratinjau)
500 Kesalahan Server Internal (Dalam pratinjau)
502 Gateway buruk
503 Layanan tidak tersedia (Dalam pratinjau)
504 Batas waktu gateway (Dalam pratinjau)

Catatan

  • API versi 2022-09-01 atau yang lebih baru harus digunakan untuk mengonfigurasi halaman kesalahan untuk kode respons baru (dalam pratinjau).
  • Kode respons 404 (Halaman tidak ditemukan) saat ini tidak didukung.
  • Halaman kesalahan kustom ditampilkan untuk kode respons yang dihasilkan oleh Application Gateway. Jika kesalahan berasal dari server backend, kesalahan tersebut diteruskan tanpa dimodifikasi ke klien.

Tingkat konfigurasi

Halaman kesalahan kustom dapat ditentukan pada tingkat Global atau Listener:

  • Tingkat global - Halaman kesalahan yang ditetapkan di tingkat global diterapkan ke semua pendengar gateway aplikasi tersebut. Konfigurasinya melalui portal Azure saat ini tidak didukung.
  • Tingkat pendengar - Halaman kesalahan pada tingkat pendengar memberi Anda kontrol terperinci untuk mengatur halaman kesalahan untuk aplikasi yang dilayani oleh pendengar tersebut.

Catatan

Saat menggunakan kombinasi halaman kesalahan tingkat Global dan Listener untuk gateway, Anda harus secara eksplisit menyebutkan URL untuk semua kode respons yang diinginkan untuk pendengar tersebut. Konfigurasi khusus pendengar mengambil alih semua konfigurasi global sebelumnya yang berlaku untuk pendengar tersebut.

Persyaratan

Untuk membuat halaman kesalahan kustom, Anda harus

  • ketahui kode respons yang diperlukan halaman kesalahan kustom.
  • mengetahui lokasi jarak jauh (URL) yang sesuai untuk halaman HTML. Ini harus berupa file yang dapat diakses publik.
  • pastikan halaman kesalahan dapat diakses secara publik dan mengembalikan respons 200.
  • pastikan halaman kesalahan harus dalam jenis ekstensi *.htm atau *.html.
  • pastikan ukuran halaman kurang dari 1 MB.

Anda dapat mereferensikan gambar/CSS internal atau eksternal untuk file HTML ini. Untuk sumber daya yang dirujuk secara eksternal, gunakan URL absolut yang dapat diakses publik. Ketahui ukuran file HTML saat menggunakan gambar sebaris yang dikodekan base64, JavaScript, atau CSS.

Catatan

  • Dalam ekosistem Azure, Anda harus menggunakan akun penyimpanan Azure Blob atau Komputer Virtual untuk menghosting halaman kesalahan. Perhatikan bahwa penyimpanan Blob harus dapat diakses langsung karena akun penyimpanan yang dihadapkan oleh layanan Azure CDN saat ini tidak didukung.
  • Anda juga dapat memilih untuk menghosting halaman kesalahan di lokasi jarak jauh mana pun.
  • Tautan relatif tidak didukung.

Cara kerjanya?

Setelah Anda menentukan halaman kesalahan di konfigurasi gateway aplikasi, gateway Anda memverifikasi konektivitas ke halaman HTML melalui internet. Kemudian mengunduh file di cache lokalnya.

Saat klien menghadapi kesalahan, gateway aplikasi Anda mengembalikan kode respons dan halaman HTML tersebut. Sumber daya yang direferensikan secara eksternal (seperti gambar, JavaScript, dan file CSS) diambil langsung oleh klien.

Gateway aplikasi Anda tidak secara berkala memeriksa lokasi file sumber untuk mengambil versi baru. Anda dapat melakukan pembaruan konfigurasi apa pun di gateway untuk memperbarui cache file secara manual. Misalnya, mengubah URL kesalahan dari halaman 1 ke halaman 2 lalu kembali ke halaman 1, atau setelah menambahkan pendengar baru.

Konfigurasi portal

Langkah-langkah untuk mengonfigurasi halaman kesalahan kustom khusus listener:

  1. Navigasi ke Application Gateway di portal dan pilih sumber daya yang diperlukan.

  2. Pilih Listener dan navigasi ke listener tertentu yang ingin Anda tentukan halaman kesalahannya.

  3. Di bawah bagian Halaman kesalahan kustom, tentukan URL yang dapat diakses publik untuk kode status yang diperlukan.

  4. Pilih Simpan.

    Screenshot of Application Gateway custom error page.

Konfigurasi Azure PowerShell

Anda dapat menggunakan Azure PowerShell untuk mengonfigurasi halaman kesalahan kustom. Misalnya, halaman kesalahan kustom global:

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$updatedgateway = Add-AzApplicationGatewayCustomError -ApplicationGateway $appgw -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

Set-AzApplicationGateway -ApplicationGateway $appgw

Atau halaman kesalahan tingkat pendengar:

$appgw   = Get-AzApplicationGateway -Name <app-gateway-name> -ResourceGroupName <resource-group-name>

$listener01 = Get-AzApplicationGatewayHttpListener -Name <listener-name> -ApplicationGateway $appgw

$updatedlistener = Add-AzApplicationGatewayHttpListenerCustomError -HttpListener $listener01 -StatusCode HttpStatus502 -CustomErrorPageUrl "http://<website-url>"

Set-AzApplicationGateway -ApplicationGateway $appgw

Untuk informasi selengkapnya, lihat Add-AzApplicationGatewayCustomError dan Add-AzApplicationGatewayHttpListenerCustomError.

Langkah berikutnya

Untuk informasi tentang diagnostik Application Gateway, lihat Kesehatan backend, log diagnostik, dan metrik untuk Application Gateway.