Memecahkan masalah kesalahan HTTP dari "502 gateway buruk" dan "503 layanan tidak tersedia" di Azure App Service

"502 gateway buruk" dan "503 layanan tidak tersedia" adalah kesalahan umum pada aplikasi Anda yang dihosting di Azure App Service. Artikel ini membantu Anda memecahkan masalah-masalah ini.

Jika Anda memerlukan bantuan lebih lanjut mengenai hal apa pun dalam artikel ini, Anda dapat menghubungi pakar Azure di forum MSDN Azure dan Stack Overflow. Sebagai alternatif, Anda juga dapat mengajukan insiden dukungan Azure. Buka situs Dukungan Azure dan pilih Dapatkan Dukungan.

Gejala

Ketika Anda menelusuri ke aplikasi, aplikasi mengembalikan kesalahan HTTP "502 Gateway Buruk" atau kesalahan HTTP "503 Layanan Tidak Tersedia".

Penyebab

Masalah ini sering disebabkan oleh masalah tingkat aplikasi, seperti:

  • permintaan memerlukan waktu yang lama
  • aplikasi yang menggunakan memori/CPU tinggi
  • aplikasi mengalami crash karena adanya pengecualian.

Langkah pemecahan masalah untuk menyelesaikan "502 gateway buruk" dan "503 layanan tidak tersedia"

Pemecahan masalah dapat dibagi menjadi tiga tugas berbeda, secara berurutan:

  1. Mengamati dan memantau perilaku aplikasi
  2. Mengumpulkan data
  3. Memitigasi masalah

Azure App Service memberi Anda berbagai opsi di setiap langkah.

1. Mengamati dan memantau perilaku aplikasi

Melacak kesehatan layanan

Microsoft Azure melakukan penerbitan setiap kali ada gangguan layanan atau penurunan performa. Anda dapat melacak kesehatan layanan di Portal Microsoft Azure. Untuk informasi selanjutnya, lihatMelacak kesehatan layanan.

Memantau aplikasi Anda

Opsi ini memungkinkan Anda mencari tahu apakah aplikasi Anda mengalami masalah. Di bilah aplikasi Anda, klik petak Permintaan dan kesalahan. Bilah Metrik akan menampilkan semua metrik yang dapat Anda tambahkan.

Beberapa metrik yang mungkin ingin Anda pantau untuk aplikasi Anda adalah

  • Set memori aktif rata-rata
  • Waktu respons rata-rata
  • Waktu CPU
  • Set memori aktif
  • Permintaan

memantau aplikasi untuk menyelesaikan kesalahan HTTP dari 502 gateway buruk dan 503 layanan tidak tersedia

Untuk mengetahui informasi selengkapnya, lihat:

2. Mengumpulkan data

Menggunakan alat diagnostik

App Service memberikan pengalaman yang cerdas dan interaktif untuk membantu Anda memecahkan masalah aplikasi tanpa memerlukan konfigurasi. Saat Anda mengalami masalah dengan aplikasi Anda, alat diagnostik akan menunjukkan apa yang salah untuk memandu Anda ke informasi yang tepat demi memecahkan dan menyelesaikan masalah dengan lebih mudah dan cepat.

Untuk mengakses diagnostik App Service, buka aplikasi App Service atau App Service Environment Anda di portal Microsoft Azure. Di navigasi kiri, klik Diagnosis dan selesaikan masalah.

Menggunakan Konsol Debug Kudu

App Service dilengkapi dengan konsol debug yang dapat Anda gunakan untuk menelusuri kesalahan, menjelajahi, mengunggah file, serta titik akhir JSON untuk mendapatkan informasi tentang lingkungan Anda. Hal ini disebut Konsol Kudu atau Dasbor SCM untuk aplikasi Anda.

Anda dapat mengakses dasbor ini dengan membuka link https://<Nama aplikasi Anda>.scm.azurewebsites.net/.

Beberapa hal yang disediakan Kudu adalah:

  • pengaturan lingkungan untuk aplikasi Anda
  • aliran log
  • cadangan diagnostik
  • konsol debug tempat Anda dapat menjalankan cmdlet Powershell dan perintah DOS dasar.

Fitur lain yang berguna dari Kudu adalah, jika aplikasi Anda mengeluarkan pengecualian kesempatan pertama, Anda dapat menggunakan Kudu dan alat SysInternals Procdump untuk membuat cadangan memori. Cadangan memori ini adalah rekam jepret dari proses dan sering kali dapat membantu Anda memecahkan masalah yang lebih rumit dengan aplikasi Anda.

Untuk informasi lebih lanjut tentang fitur yang tersedia di Kudu, lihat Alat online situs web Azure yang harus Anda ketahui.

3. Memitigasi masalah

Menskalakan aplikasi

Di Azure App Service, untuk meningkatkan performa dan throughput, Anda dapat menyesuaikan skala di mana Anda menjalankan aplikasi Anda. Menskalakan aplikasi melibatkan dua tindakan yang saling terkait: mengubah paket Azure App Service Anda ke tingkat harga yang lebih tinggi dan mengonfigurasi pengaturan tertentu setelah Anda beralih ke tingkat harga yang lebih tinggi.

Untuk informasi selanjutnya tentang penskalaan, lihat Menskalakan aplikasi di Azure App Service.

Selain itu, Anda dapat memilih untuk menjalankan aplikasi Anda pada lebih dari satu instans . Hal ini tidak hanya memberi Anda kemampuan pemrosesan yang lebih banyak, tetapi juga memberi Anda sejumlah toleransi kegagalan. Jika proses terhenti pada satu instans, instans lain akan tetap melanjutkan permintaan pelayanan.

Anda dapat mengatur penskalaan menjadi Manual atau Otomatis.

Menggunakan AutoHeal

AutoHeal mendaur ulang proses pekerja untuk aplikasi Anda berdasarkan pengaturan yang Anda pilih (seperti perubahan konfigurasi, permintaan, batas berbasis memori, atau waktu yang diperlukan untuk menjalankan permintaan). Sering kali, daur ulang proses adalah cara tercepat untuk pulih dari masalah. Meskipun Anda selalu dapat memulai ulang aplikasi dari langsung dalam Portal Microsoft Azure, AutoHeal akan melakukannya secara otomatis untuk Anda. Satu hal yang perlu Anda lakukan adalah menambahkan beberapa pemicu di akar web.config untuk aplikasi Anda. Perhatikan bahwa pengaturan ini akan berfungsi dengan cara yang sama bahkan jika aplikasi Anda bukan .NET.

Untuk informasi lebih lanjut, lihat Situs Web Auto-Healing Azure.

Menghidupkan ulang aplikasi

Tindakan ini sering kali merupakan cara paling sederhana untuk pulih dari masalah satu kali. Di Portal Microsoft Azure, pada bilah aplikasi, Anda memiliki opsi untuk menghentikan atau menghidupkan ulang aplikasi.

hidupkan ulang aplikasi untuk menyelesaikan kesalahan HTTP dari 502 gateway buruk dan 503 layanan tidak tersedia

Anda juga dapat mengelola aplikasi Anda menggunakan Azure PowerShell. Untuk informasi selanjutnya, lihat Menggunakan Azure PowerShell dengan Azure Resource Manager.