Memecahkan masalah umum Azure Front Door

Artikel ini menjelaskan cara memecahkan masalah perutean umum yang mungkin Anda hadapi untuk konfigurasi Azure Front Door Anda.

Header HTTP debug lainnya

Anda dapat meminta Azure Front Door untuk mengembalikan header respons HTTP penelusuran kesalahan tambahan. Untuk informasi selengkapnya, lihat header respons opsional.

Respons 503 atau 504 dari Azure Front Door setelah beberapa detik

Gejala

  • Permintaan reguler yang dikirim ke backend Anda tanpa melalui Azure Front Door berhasil. Melalui Azure Front Door menghasilkan respons kesalahan 503 atau 504.
  • Kegagalan dari Azure Front Door biasanya muncul setelah sekitar 30 detik.
  • Kesalahan 503 terputus-putus muncul dengan "ErrorInfo: OriginInvalidResponse."

Penyebab

Penyebab masalah ini bisa menjadi salah satu dari tiga hal:

  • Asal Anda membutuhkan waktu lebih lama dari batas waktu yang dikonfigurasi untuk menerima permintaan dari Azure Front Door. Batas waktu default adalah 30 detik.
  • Waktu yang diperlukan untuk mengirim respons ke permintaan dari Azure Front Door memakan waktu lebih lama dari nilai waktu habis.
  • Klien mengirim permintaan rentang byte dengan header Accept-Encoding, yang berarti pemadatan diaktifkan.

Langkah-langkah pemecahan masalah

  • Kirim permintaan ke asal Anda secara langsung tanpa melalui Azure Front Door. Lihat berapa lama asal Anda biasanya merespons.

  • Kirim permintaan melalui Azure Front Door dan lihat apakah Anda mendapatkan 503 respons. Jika tidak, masalahnya mungkin bukan masalah waktu habis. Buat permintaan dukungan untuk memecahkan masalah lebih lanjut.

  • Jika permintaan melalui Azure Front Door menghasilkan kode respons kesalahan 503, konfigurasikan batas waktu respons Asal untuk Azure Front Door. Anda dapat meningkatkan batas waktu default hingga 4 menit (240 detik). Untuk mengonfigurasikan pengaturan, buka halaman ringkasan profil Front Door. Pilih Batas waktu respons asal dan masukkan nilai antara 16 dan 240 detik.

    Catatan

    Kemampuan untuk mengonfigurasi batas waktu respons Asal hanya tersedia di Azure Front Door Standard/Premium.

    Screenshot of the origin timeout settings on the overview page of the Azure Front Door profile.

  • Jika meningkatkan batas waktu tidak mengatasi masalah, gunakan alat seperti Fiddler atau alat pengembang browser Anda untuk memeriksa apakah klien mengirim permintaan rentang byte dengan header Accept-Encoding . Menggunakan opsi ini menyebabkan asal merespons dengan panjang konten yang berbeda.

    Jika klien mengirim permintaan rentang byte dengan header Accept-Encoding, Anda memiliki dua opsi. Opsi pertama adalah menonaktifkan pemadatan pada asal atau Azure Front Door. Opsi kedua adalah membuat aturan seperangkat aturan untuk menghapus Accept-Encoding dari permintaan permintaan rentang byte.

    Screenshot that shows the Accept-Encoding rule in a rule set.

Respons 503 dari Azure Front Door hanya untuk HTTPS

Gejala

  • Setiap respons 503 dikembalikan hanya untuk titik akhir yang diaktifkan HTTPS Azure Front Door.
  • Permintaan reguler yang dikirim ke backend Anda tanpa melalui Azure Front Door berhasil. Melalui Azure Front Door menghasilkan 503 respons kesalahan.
  • Kesalahan 503 terputus-putus muncul dengan "ErrorInfo: OriginInvalidResponse."

Penyebab

Penyebab masalah ini bisa menjadi salah satu dari tiga hal:

  • Kumpulan backend adalah alamat IP.
  • Server backend mengembalikan sertifikat yang tidak sesuai dengan FQDN dari kumpulan backend Azure Front Door.
  • Kumpulan backend adalah server Azure Web Apps.

Langkah-langkah pemecahan masalah

  • Kumpulan backend adalah alamat IP.

    EnforceCertificateNameCheck harus dinonaktifkan.

    Azure Front Door memiliki pengalih yang disebut EnforceCertificateNameCheck. Secara default, pengaturan ini diaktifkan. Saat diaktifkan, Azure Front Door memeriksa apakah nama host kumpulan backend FQDN cocok dengan nama sertifikat server backend atau salah satu entri dalam ekstensi nama alternatif subjek.

    • Cara menonaktifkan EnforceCertificateNameCheck dari portal Microsoft Azure:

      Di portal, gunakan tombol dwiarah untuk mengaktifkan atau menonaktifkan pengaturan ini di panel Desain Azure Front Door (klasik).

      Screenshot that shows the toggle button.

      Untuk tingkat Azure Front Door Standard dan Premium, pengaturan ini dapat ditemukan di pengaturan asal saat Anda menambahkan asal ke grup asal atau mengonfigurasi rute.

      Screenshot of the certificate subject name validation checkbox.

  • Server backend mengembalikan sertifikat yang tidak sesuai dengan FQDN dari kumpulan backend Azure Front Door. Untuk mengatasi masalah ini, Anda memiliki dua opsi:

    • Sertifikat yang dikembalikan harus sesuai dengan FQDN.
    • EnforceCertificateNameCheck harus dinonaktifkan.
  • Kumpulan backend adalah server Azure Web Apps:

    • Periksa apakah aplikasi web Azure dikonfigurasi dengan SSL berbasis IP, bukan berbasis SNI. Jika aplikasi web dikonfigurasi sebagai berbasis IP, aplikasi web tersebut harus diubah menjadi SNI.
    • Jika backend tidak sehat karena kegagalan sertifikat, pesan kesalahan 503 akan dikembalikan. Anda dapat memverifikasi kesehatan backend di port 80 dan 443. Jika hanya 443 yang tidak sehat, kemungkinan ada masalah dengan SSL. Karena backend dikonfigurasi untuk menggunakan FQDN, kami tahu bahwa itu mengirim SNI.

    Gunakan OPENSSL untuk memverifikasi sertifikat yang dikembalikan. Untuk melakukan pemeriksaan ini, sambungkan ke backend dengan menggunakan -servername. Langkah ini harus mengembalikan SNI, yang perlu dicocokkan dengan FQDN kumpulan backend:

    openssl s_client -connect backendvm.contoso.com:443 -servername backendvm.contoso.com

Permintaan yang dikirim ke domain kustom mengembalikan kode status 400

Gejala

  • Anda membuat instans Azure Front Door. Permintaan ke domain atau host frontend mengembalikan kode status HTTP 400.
  • Anda membuat pemetaan DNS untuk domain kustom ke host frontend yang Anda konfigurasi. Mengirim permintaan ke nama host domain kustom akan mengembalikan kode status HTTP 400. Tampaknya tidak merutekan ke backend yang Anda konfigurasi.

Penyebab

Masalahnya terjadi jika Anda tidak mengonfigurasi aturan perutean untuk domain kustom yang ditambahkan sebagai host frontend. Aturan perutean perlu ditambahkan secara eksplisit untuk host frontend itu. Anda perlu membuat aturan bahkan jika aturan perutean sudah dikonfigurasi untuk host frontend di bawah subdomain Azure Front Door, yaitu *.azurefd.net.

Langkah pemecahan masalah

Tambahkan aturan perutean untuk domain kustom guna mengarahkan lalu lintas ke grup asal yang dipilih.

Azure Front Door tidak mengalihkan HTTP ke HTTPS

Gejala

Azure Front Door memiliki aturan perutean yang mengalihkan HTTP ke HTTPS, tetapi mengakses domain masih mempertahankan HTTP sebagai protokol.

Penyebab

Perilaku ini dapat terjadi jika Anda tidak mengonfigurasi aturan perutean dengan benar untuk Azure Front Door. Konfigurasi Anda saat ini tidak spesifik dan mungkin memiliki aturan yang bertentangan.

Langkah-langkah pemecahan masalah

Permintaan ke nama host frontend mengembalikan kode status 411

Gejala

Anda membuat instans Azure Front Door Standard/Premium dan mengonfigurasi:

  • Host frontend.
  • Grup asal dengan setidaknya satu asal di dalamnya.
  • Aturan perutean yang menyambungkan host frontend ke grup asal.

Konten Anda sepertinya tidak tersedia saat permintaan masuk ke host frontend yang dikonfigurasi karena kode status HTTP 411 dikembalikan.

Respons terhadap permintaan ini mungkin juga berisi halaman kesalahan HTML di badan respons yang menyertakan pernyataan penjelasan. Contohnya adalah "Kesalahan HTTP 411. Permintaan harus dipotong atau memiliki panjang konten."

Penyebab

Ada beberapa kemungkinan penyebab gejala ini. Alasan keseluruhan adalah bahwa permintaan HTTP Anda tidak sepenuhnya mematuhi RFC.

Contoh ketidakpatuhan adalah permintaan POST yang dikirim tanpa header Content-Length atau Transfer-Encoding. Contohnya akan menggunakan curl -X POST https://example-front-door.domain.com. Permintaan ini tidak memenuhi persyaratan yang ditetapkan dalam RFC 7230. Azure Front Door akan memblokirnya dengan respons HTTP 411. Permintaan tersebut tidak dicatat.

Perilaku ini terpisah dari fungsionalitas firewall aplikasi web (WAF) dari Azure Front Door. Saat ini, tidak ada cara untuk menonaktifkan perilaku ini. Semua permintaan HTTP harus memenuhi persyaratan, bahkan jika fungsi WAF tidak digunakan.

Langkah-langkah pemecahan masalah

  • Verifikasi bahwa permintaan Anda mematuhi persyaratan yang ditetapkan dalam RFC yang diperlukan.
  • Perhatikan setiap isi pesan HTML yang dikembalikan sebagai tanggapan atas permintaan Anda. Badan pesan sering menjelaskan dengan tepat bagaimana permintaan Anda tidak patuh.

Asal saya dikonfigurasi sebagai alamat IP.

Gejala

Asal dikonfigurasi sebagai alamat IP. Asalnya sehat, tetapi menolak permintaan dari Azure Front Door.

Penyebab

Azure Front Door menggunakan nama host asal sebagai header SNI selama jabat tangan SSL. Karena asal dikonfigurasi sebagai alamat IP, kegagalan dapat disebabkan oleh salah satu alasan berikut:

  • Pemeriksaan nama sertifikat diaktifkan dalam konfigurasi asal Front Door. Disarankan untuk membiarkan pengaturan ini diaktifkan. Pemeriksaan nama sertifikat memerlukan nama host asal agar sesuai dengan nama sertifikat atau salah satu entri dalam ekstensi nama alternatif subjek.
  • Jika pemeriksaan nama sertifikat dinonaktifkan, penyebabnya kemungkinan karena logika sertifikat asal menolak permintaan apa pun yang tidak memiliki header host yang valid dalam permintaan yang cocok dengan sertifikat.

Langkah-langkah pemecahan masalah

Ubah asal dari alamat IP ke FQDN tempat sertifikat yang valid dikeluarkan yang cocok dengan sertifikat asal.

Langkah berikutnya