Kode status HTTP 502 (Gerbang Buruk) - Amazon CloudFront

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kode status HTTP 502 (Gerbang Buruk)

CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) ketika CloudFront tidak dapat melayani objek yang diminta karena tidak dapat terhubung ke server asal.

Jika Anda menggunakan Lambda @Edge, masalahnya mungkin kesalahan validasi Lambda. Jika Anda menerima kesalahan HTTP 502 dengan kode NonS3OriginDnsError kesalahan, kemungkinan ada masalah konfigurasi DNS yang CloudFront mencegah tersambung ke asal.

Kegagalan negosiasi SSL/TLS antara CloudFront dan server asal kustom

Jika Anda menggunakan custom origin yang memerlukan HTTPS antara CloudFront dan asal Anda, nama domain yang tidak cocok dapat menyebabkan kesalahan. Sertifikat SSL/TLS pada asal Anda harus menyertakan nama domain yang cocok dengan Domain Asal yang Anda tentukan untuk CloudFront distribusi atau Host header permintaan asal.

Jika nama domain tidak cocok, jabat tangan SSL/TLS gagal, dan CloudFront mengembalikan kode status HTTP 502 (Bad Gateway) dan menetapkan header ke. X-Cache Error from cloudfront

Untuk menentukan apakah nama domain dalam sertifikat cocok dengan Domain Asal dalam distribusi atau Host header, Anda dapat menggunakan pemeriksa SSL online atau OpenSSL. Jika nama domain tidak cocok, Anda memiliki dua opsi:

  • Dapatkan sertifikat SSL/TLS baru yang menyertakan nama domain yang berlaku.

    Jika Anda menggunakan AWS Certificate Manager (ACM), lihat Meminta sertifikat publik di Panduan AWS Certificate Manager Pengguna untuk meminta sertifikat baru.

  • Ubah konfigurasi distribusi sehingga CloudFront tidak lagi mencoba menggunakan SSL untuk terhubung dengan asal Anda.

Pemeriksa SSL online

Untuk menemukan alat uji SSL, cari “pemeriksaan ssl online” di internet. Biasanya, Anda menentukan nama domain Anda, dan alat mengembalikan berbagai informasi tentang sertifikat SSL/TLS Anda. Konfirmasikan bahwa sertifikat berisi nama domain Anda di Nama Umum atau Nama Alternatif Subjek bidang.

OpenSSL

Untuk membantu memecahkan masalah kesalahan HTTP 502 CloudFront, Anda dapat menggunakan OpenSSL untuk mencoba membuat konfigurasi. SSL/TLS connection to your origin server. If OpenSSL is not able to make a connection, that can indicate a problem with your origin server's SSL/TLS Jika OpenSSL dapat membuat koneksi, ia mengembalikan informasi tentang sertifikat server asal, termasuk nama umum sertifikat Subject CN (bidang) dan nama Subject Alternative Name alternatif subjek (bidang).

Gunakan perintah OpenSSL berikut untuk menguji koneksi ke server asal Anda (origin domainganti dengan nama domain server asal Anda, seperti example.com):

openssl s_client -connect origin domain name:443

Jika yang berikut ini benar:

  • Server asal Anda mendukung beberapa nama domain dengan beberapa sertifikat SSL/TLS

  • Distribusi Anda dikonfigurasi untuk meneruskan Host header ke asal

Kemudian tambahkan -servername opsi ke perintah OpenSSL, seperti pada contoh berikut (CNAMEganti dengan CNAME yang dikonfigurasi dalam distribusi Anda):

openssl s_client -connect origin domain name:443 -servername CNAME

Origin tidak merespons dengan cipher/protokol yang didukung

CloudFront terhubung ke server asal menggunakan cipher dan protokol. Untuk daftar cipher dan protokol yang CloudFront mendukung, lihat. Protokol dan cipher yang didukung antara dan asal CloudFront Jika asal Anda tidak merespons dengan salah satu cipher atau protokol ini di bursa SSL/TLS, gagal terhubung. CloudFront Anda dapat memvalidasi bahwa asal Anda mendukung cipher dan protokol dengan menggunakan alat online seperti SSL Labs. Ketikkan nama domain asal Anda di Nama host , lalu pilih Kirim. Meninjau Nama umum dan Nama alternatif bidang dari pengujian untuk melihat apakah sesuai dengan nama domain asal Anda. Setelah uji selesai, temukan Protokol dan Cipher Suites bagian dalam hasil uji untuk melihat cipher atau protokol mana yang didukung oleh asal Anda. Bandingkan dengan daftarProtokol dan cipher yang didukung antara dan asal CloudFront .

Sertifikat SSL/TLS pada asal kedaluwarsa, tidak valid, ditandatangani sendiri, atau rantai sertifikat dalam urutan yang salah

Jika server asal mengembalikan berikut ini, CloudFront menjatuhkan koneksi TCP, mengembalikan kode status HTTP 502 (Bad Gateway), dan menetapkan X-Cache header ke: Error from cloudfront

  • Sertifikat yang kedaluwarsa

  • Sertifikat tidak valid

  • Sertifikat yang ditandatangani sendiri

  • Rantai sertifikat dalam urutan yang salah

catatan

Jika rantai lengkap sertifikat, termasuk sertifikat perantara, tidak ada, CloudFront jatuhkan koneksi TCP.

Untuk informasi tentang menginstal sertifikat SSL/TLS di server asal kustom Anda, lihat. Memerlukan HTTPS untuk komunikasi antara CloudFront dan asal kustom Anda

Origin tidak merespons pada port tertentu dalam pengaturan asal

Ketika Anda membuat asal pada CloudFront distribusi Anda, Anda dapat mengatur port yang CloudFront terhubung ke asal dengan untuk lalu lintas HTTP dan HTTPS. Secara default, ini adalah TCP 80/443. Anda memiliki opsi untuk mengubah port ini. Jika asal Anda menolak lalu lintas pada port ini karena alasan apa pun, atau jika server backend Anda tidak merespons pada port, CloudFront akan gagal terhubung.

Untuk memecahkan masalah ini, periksa firewall apa pun yang berjalan di infrastruktur Anda dan pastikan firewall tersebut tidak menghalangi rentang IP yang didukung. Untuk informasi selengkapnya, lihat rentang alamat AWS IP di Panduan Pengguna Amazon VPC. Selain itu, verifikasi apakah server web Anda berjalan di tempat asalnya.

Kesalahan validasi Lambda

Jika Anda menggunakan Lambda @Edge, kode status HTTP 502 dapat menunjukkan bahwa respons fungsi Lambda Anda salah dibentuk atau menyertakan konten yang tidak valid. Untuk informasi selengkapnya tentang pemecahan masalah kesalahan Lambda@Edge, lihat Uji dan debug fungsi Lambda @Edge.

CloudFront kesalahan validasi fungsi

Jika Anda menggunakan CloudFront fungsi, kode status HTTP 502 dapat menunjukkan bahwa CloudFront fungsi tersebut mencoba menambahkan, menghapus, atau mengubah header hanya-baca. Kesalahan ini tidak muncul selama pengujian, tetapi akan muncul setelah Anda menerapkan fungsi dan menjalankan permintaan. Untuk mengatasi kesalahan ini, periksa dan perbarui CloudFront fungsi Anda. Untuk informasi selengkapnya, lihat Perbarui fungsi.

Kesalahan DNS () NonS3OriginDnsError

Kesalahan HTTP 502 dengan kode NonS3OriginDnsError kesalahan menunjukkan bahwa ada masalah konfigurasi DNS yang CloudFront mencegah tersambung ke asal. Jika Anda mendapatkan kesalahan ini CloudFront, pastikan konfigurasi DNS asal sudah benar dan berfungsi.

Ketika CloudFront menerima permintaan untuk objek yang kedaluwarsa atau tidak dalam cache, itu membuat permintaan ke asal untuk mendapatkan objek. Untuk membuat permintaan yang berhasil ke asal, CloudFront lakukan resolusi DNS pada domain asal. Jika layanan DNS untuk domain Anda mengalami masalah, tidak CloudFront dapat menyelesaikan nama domain untuk mendapatkan alamat IP, yang menghasilkan kesalahan HTTP 502 ()NonS3OriginDnsError. Untuk memperbaiki masalah ini, hubungi penyedia DNS Anda, atau, jika Anda menggunakan Amazon Route 53, lihat Mengapa saya tidak dapat mengakses situs web saya yang menggunakan layanan DNS Route 53?

Untuk mengatasi masalah ini lebih lanjut, pastikan bahwa server nama otoritatif domain akar atau puncak zona asal Anda (seperti example.com) berfungsi dengan benar. Anda dapat menggunakan perintah berikut untuk menemukan server nama untuk asal puncak Anda, dengan alat seperti dig atau nslookup:

dig OriginAPEXDomainName NS +short
nslookup -query=NS OriginAPEXDomainName

Saat Anda memiliki nama server nama Anda, gunakan perintah berikut untuk menanyakan nama domain asal Anda terhadap server tersebut guna memastikan bahwa setiap server menjawabnya dengan jawaban:

dig OriginDomainName @NameServer
nslookup OriginDomainName NameServer
penting

Pastikan Anda melakukan pemecahan masalah DNS ini menggunakan komputer yang terhubung ke internet publik. CloudFront menyelesaikan domain asal menggunakan DNS publik di internet, jadi penting untuk memecahkan masalah dalam konteks yang sama.

Jika asal Anda adalah subdomain yang otoritas DNSNYA didelegasikan ke server nama yang berbeda dari domain root, pastikan bahwa catatan name server (NS) dan start of authority (SOA) dikonfigurasi dengan benar untuk subdomain. Anda dapat memeriksa catatan ini menggunakan perintah yang mirip dengan contoh sebelumnya.

Untuk informasi selengkapnya tentang DNS, lihat konsep Sistem Nama Domain (DNS) dalam dokumentasi Amazon Route 53.

Kesalahan asal Application Load Balancer 502

Jika Anda menggunakan Application Load Balancer sebagai asal Anda dan menerima kesalahan 502, lihat Bagaimana cara mengatasi kesalahan Application Load Balancer HTTP 502? .

Kesalahan 502 asal API Gateway

Jika Anda menggunakan API Gateway dan menerima kesalahan 502, lihat Bagaimana cara mengatasi kesalahan HTTP 502 dari API Gateway REST dengan integrasi proxy APIs Lambda? .