Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi
Apigee X. info
Gejala
Aplikasi klien mendapatkan kode status HTTP 502 dengan pesan
Bad Gateway sebagai respons untuk panggilan API.
Kode status HTTP 502 berarti klien tidak menerima respons yang valid dari server backend yang seharusnya memenuhi permintaan.
Pesan error
Aplikasi klien mendapatkan kode respons berikut:
HTTP/1.1 502 Bad Gateway
Selain itu, Anda mungkin melihat pesan error berikut:
{
"fault": {
"faultstring": "Unexpected EOF at target",
"detail": {
"errorcode": "messaging.adaptors.http.UnexpectedEOFAtTarget"
}
}
}Kemungkinan penyebab
Salah satu penyebab umum 502 Bad Gateway Error adalah error Unexpected EOF
yang dapat disebabkan oleh alasan berikut:
| Penyebab | Detail | Langkah-langkah yang diberikan untuk |
|---|---|---|
| Server target yang dikonfigurasi dengan tidak benar | Server target tidak dikonfigurasi dengan benar untuk mendukung koneksi TLS/SSL. | Pengguna Edge Public dan Private Cloud |
| EOFException dari Server Backend | Server backend dapat mengirim EOF secara tiba-tiba. | Khusus pengguna Edge Private Cloud |
| Waktu tunggu tetap aktif yang dikonfigurasi dengan tidak tepat | Waktu tunggu tetap aktif dikonfigurasi secara tidak benar di Apigee dan server backend. | Pengguna Edge Public dan Private Cloud |
Langkah-langkah diagnosis umum
Untuk mendiagnosis error, Anda dapat menggunakan salah satu metode berikut:
Pemantauan API
Untuk mendiagnosis error menggunakan Pemantauan API:
Dengan Pemantauan API, Anda dapat menyelidiki
error 502, dengan mengikuti langkah-langkah seperti yang dijelaskan dalam
Menyelidiki masalah. Definisinya yaitu:
- Buka dasbor Investigasi.
- Pilih Kode Status di menu drop-down dan pastikan jangka waktu yang tepat dipilih saat terjadi error
502. - Klik kotak dalam matriks saat Anda melihat banyak error
502. - Di sisi kanan, klik Lihat Log untuk error
502yang akan terlihat seperti berikut: - Sumber Kesalahan adalah
target - Kode Kesalahan adalah
messaging.adaptors.http.UnexpectedEOFAtTarget

Di sini kita dapat melihat informasi berikut:
Hal ini menunjukkan bahwa error 502 disebabkan oleh target karena EOF yang tidak terduga.
Selain itu, catat Request Message ID untuk error 502 guna penyelidikan lebih lanjut.
Alat rekaman aktivitas
Untuk mendiagnosis error menggunakan alat Trace:
- Aktifkan
sesi rekaman aktivitas, dan lakukan panggilan API untuk mereproduksi masalah
502 Bad Gateway. - Pilih salah satu permintaan yang gagal dan periksa rekaman aktivitas.
- Telusuri berbagai fase rekaman aktivitas dan temukan tempat terjadinya kegagalan.
-
Anda akan melihat kegagalan setelah permintaan dikirim ke server target seperti yang ditunjukkan di bawah:


-
Tentukan nilai X-Apigee.fault-source dan X-Apigee.fault-code di AX (Analytics Data Recorded) Phase dalam rekaman aktivitas.
Jika nilai X-Apigee.fault-source dan X-Apigee.fault-code cocok dengan nilai yang ditampilkan dalam tabel berikut, Anda dapat mengonfirmasi bahwa error
502berasal dari server target:Header respons Nilai X-Apigee.fault-source targetX-Apigee.fault-code messaging.adaptors.http.flow.UnexpectedEOFAtTargetSelain itu, catat
X-Apigee.Message-IDuntuk error502untuk penyelidikan lebih lanjut.
Log akses NGINX
Untuk mendiagnosis error menggunakan NGINX:
Anda juga dapat melihat log akses NGINX untuk menentukan penyebab kode status 502. Hal ini sangat berguna jika masalah telah terjadi di masa lalu atau jika masalahnya
bersifat sementara dan Anda tidak dapat merekam rekaman aktivitas di UI. Gunakan langkah-langkah berikut untuk
menentukan informasi ini dari log akses NGINX:
- Periksa log akses NGINX.
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log - Telusuri error
502untuk proxy API tertentu selama durasi tertentu (jika masalah terjadi di masa lalu) atau untuk permintaan yang masih gagal dengan502. - Jika ada error
502, periksa apakah error disebabkan oleh target yang mengirimUnexpected EOF. Jika nilai X-Apigee.fault-source dan X- Apigee.fault-code cocok dengan nilai yang ditampilkan dalam tabel di bawah, error502disebabkan oleh target yang menutup koneksi secara tidak terduga:Header Respons Nilai X-Apigee.fault-source targetX-Apigee.fault-code messaging.adaptors.http.flow.UnexpectedEOFAtTargetBerikut adalah contoh entri yang menunjukkan error
502yang disebabkan oleh server target:
Selain itu, catat ID pesan untuk error 502 untuk penyelidikan lebih lanjut.
Penyebab: Server target yang dikonfigurasi dengan tidak benar
Server target tidak dikonfigurasi dengan benar untuk mendukung koneksi TLS/SSL.
Diagnosis
- Gunakan Pemantauan API, alat Pelacakan, atau
log akses NGINX untuk menentukan ID pesan,
kode kesalahan, dan sumber kesalahan untuk error
502. - Aktifkan rekaman aktivitas di UI untuk API yang terpengaruh.
- Jika rekaman aktivitas untuk permintaan API yang gagal menampilkan hal berikut:
- Error
502 Bad Gatewayterlihat segera setelah permintaan alur target dimulai. error.classmenampilkanmessaging.adaptors.http.UnexpectedEOF.Maka, kemungkinan besar masalah ini disebabkan oleh konfigurasi server target yang salah.
- Error
- Dapatkan definisi server target menggunakan panggilan Edge Management API:
- Jika Anda adalah pengguna Cloud Publik, gunakan API ini:
curl -v https://api.enterprise.apigee.com/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
- Jika Anda adalah pengguna Private Cloud, gunakan API ini:
curl -v http://<management-server-host>:<port #>/v1/organizations/<orgname>/environments/<envname>/targetservers/<targetservername> -u <username>
Contoh definisi
TargetServeryang salah:<TargetServer name="target1"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> </TargetServer >
- Jika Anda adalah pengguna Cloud Publik, gunakan API ini:
-
Definisi
TargetServeryang diilustrasikan adalah contoh untuk salah satu kesalahan konfigurasi umum yang dijelaskan sebagai berikut:Asumsikan bahwa server target
mocktarget.apigee.netdikonfigurasi untuk menerima koneksi aman (HTTPS) di port443. Namun, jika Anda melihat definisi server target, tidak ada atribut/flag lain yang menunjukkan bahwa server tersebut ditujukan untuk koneksi aman. Hal ini menyebabkan Edge memperlakukan permintaan API yang ditujukan ke server target tertentu sebagai permintaan HTTP (tidak aman). Jadi, Edge tidak akan memulai proses SSL Handshake dengan server target ini.Karena server target dikonfigurasi untuk hanya menerima permintaan HTTPS (SSL) di
443, server tersebut akan menolak permintaan dari Edge atau menutup koneksi. Akibatnya, Anda akan mendapatkan errorUnexpectedEOFAtTargetdi Pemroses Pesan. Prosesor Pesan akan mengirimkan502 Bad Gatewaysebagai respons kepada klien.
Resolusi
Selalu pastikan server target dikonfigurasi dengan benar sesuai dengan persyaratan Anda.
Untuk contoh yang diilustrasikan di atas, jika Anda ingin membuat permintaan ke server target yang aman (HTTPS/SSL), Anda harus menyertakan atribut SSLInfo dengan tanda enabled yang ditetapkan ke true. Meskipun atribut SSLInfo dapat ditambahkan untuk server target dalam definisi
endpoint target itu sendiri, sebaiknya tambahkan atribut SSLInfo sebagai bagian dari definisi
server target untuk menghindari kebingungan.
- Jika layanan backend memerlukan komunikasi SSL satu arah, maka:
- Anda perlu mengaktifkan TLS/SSL dalam definisi
TargetServerdengan menyertakan atributSSLInfodengan tandaenabledyang disetel ke benar (true) seperti yang ditunjukkan di bawah:<TargetServer name="mocktarget"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Enabled>true</Enabled> </SSLInfo> </TargetServer> - Jika Anda ingin memvalidasi sertifikat server target di Edge, kita juga perlu menyertakan truststore (yang berisi sertifikat server target) seperti yang ditunjukkan di bawah ini:
<TargetServer name="mocktarget"> <Host>mocktarget.apigee.net</Host> <Port>443</Port> <IsEnabled>true</IsEnabled> <SSLInfo> <Ciphers/> <ClientAuthEnabled>false</ClientAuthEnabled> <Enabled>true</Enabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <Protocols/> <TrustStore>mocktarget-truststore</TrustStore> </SSLInfo> </TargetServer>
- Anda perlu mengaktifkan TLS/SSL dalam definisi
- Jika layanan backend memerlukan komunikasi SSL dua arah, maka:
- Anda harus memiliki atribut
SSLInfodenganClientAuthEnabled,Keystore,KeyAlias, dan flagTruststoreyang ditetapkan dengan tepat, seperti yang ditunjukkan di bawah ini:<TargetServer name="mocktarget"> <IsEnabled>true</IsEnabled> <Host>www.example.com</Host> <Port>443</Port> <SSLInfo> <Ciphers/> <ClientAuthEnabled>true</ClientAuthEnabled> <Enabled>true</Enabled> <IgnoreValidationErrors>false</IgnoreValidationErrors> <KeyAlias>keystore-alias</KeyAlias> <KeyStore>keystore-name</KeyStore> <Protocols/> <TrustStore>truststore-name</TrustStore> </SSLInfo> </TargetServer >
- Anda harus memiliki atribut
Referensi
Load balancing di seluruh server backend
Penyebab: EOFException dari server backend
Server backend dapat mengirim EOF (End of File) secara tiba-tiba.
Diagnosis
- Gunakan Pemantauan API, alat Pelacakan, atau
log akses NGINX untuk menentukan ID pesan,
kode kesalahan, dan sumber kesalahan untuk error
502. - Periksa log Message Processor
(
/opt/apigee/var/log/edge-message-processor/logs/system.log) dan telusuri untuk melihat apakah Anda memilikieof unexpecteduntuk API tertentu atau apakah Anda memilikimessageidunik untuk permintaan API, lalu Anda dapat menelusurinya.Contoh pelacakan tumpukan pengecualian dari log Pemroses Pesan
"message": "org:myorg env:test api:api-v1 rev:10 messageid:rrt-1-14707-63403485-19 NIOThread@0 ERROR HTTP.CLIENT - HTTPClient$Context$3.onException() : SSLClientChannel[C:193.35.250.192:8443 Remote host:0.0.0.0:50100]@459069 useCount=6 bytesRead=0 bytesWritten=755 age=40107ms lastIO=12832ms .onExceptionRead exception: {} java.io.EOFException: eof unexpected at com.apigee.nio.channels.PatternInputChannel.doRead(PatternInputChannel.java:45) ~[nio-1.0.0.jar:na] at com.apigee.nio.channels.InputChannel.read(InputChannel.java:103) ~[nio-1.0.0.jar:na] at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:79) ~[http-1.0.0.jar:na] at com.apigee.nio.channels.DefaultNIOSupport$DefaultIOChannelHandler.onIO(NIOSupport.java:51) [nio-1.0.0.jar:na] at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:123) [nio-1.0.0.jar:na]"
Dalam contoh di atas, Anda dapat melihat bahwa error
java.io.EOFException: eof unexpectedterjadi saat Message Processor mencoba membaca respons dari server backend. Pengecualian ini menunjukkan akhir file (EOF), atau akhir streaming telah tercapai secara tidak terduga.Artinya, Message Processor mengirim permintaan API ke server backend dan sedang menunggu atau membaca respons. Namun, server backend menghentikan koneksi secara tiba-tiba sebelum Message Processor mendapatkan respons atau dapat membaca respons lengkap.
- Periksa log server backend Anda dan lihat apakah ada error atau informasi yang dapat menyebabkan server backend menghentikan koneksi secara tiba-tiba. Jika Anda menemukan error/informasi, buka Penyelesaian dan perbaiki masalah dengan tepat di server backend Anda.
- Jika Anda tidak menemukan error atau informasi apa pun di server backend, kumpulkan output
tcpdumpdi Pemroses Pesan:- Jika host server backend Anda memiliki satu alamat IP, gunakan perintah berikut:
tcpdump -i any -s 0 host IP_ADDRESS -w FILE_NAME
- Jika host server backend Anda memiliki beberapa alamat IP, gunakan perintah berikut:
tcpdump -i any -s 0 host HOSTNAME -w FILE_NAME
Biasanya, error ini disebabkan karena server backend merespons kembali dengan
[FIN,ACK]segera setelah Message Processor mengirimkan permintaan ke server backend.
- Jika host server backend Anda memiliki satu alamat IP, gunakan perintah berikut:
-
Perhatikan contoh
tcpdumpberikut.Sampel
tcpdumpdiambil saat502 Bad Gateway Error(UnexpectedEOFAtTarget) terjadi
- Dari output TCPDump, Anda akan melihat urutan peristiwa berikut:
- Dalam paket
985, Message Processor mengirimkan permintaan API ke server backend. - Dalam paket
986, server backend segera merespons kembali dengan[FIN,ACK]. - Dalam paket
987, Message Processor merespons dengan[FIN,ACK]ke server backend. - Pada akhirnya, koneksi ditutup dengan
[ACK]dan[RST]dari kedua sisi. - Karena server backend mengirim
[FIN,ACK], Anda akan mendapatkan pengecualianjava.io.EOFException: eof unexpecteddi Pemroses Pesan.
- Dalam paket
- Hal ini dapat terjadi jika ada masalah jaringan di server backend. Hubungi tim operasi jaringan Anda untuk menyelidiki masalah ini lebih lanjut.
Resolusi
Perbaiki masalah di server backend dengan tepat.
Jika masalah berlanjut dan Anda memerlukan bantuan untuk memecahkan masalah 502 Bad Gateway Error atau Anda
mencurigai bahwa masalahnya ada di dalam Edge, hubungi Dukungan Apigee Edge.
Penyebab: Waktu tunggu tetap aktif yang salah dikonfigurasi
Sebelum mendiagnosis apakah ini penyebab error 502, baca
konsep berikut.
Koneksi persisten di Apigee
Apigee secara default (dan sesuai dengan standar HTTP/1.1) menggunakan koneksi persisten
saat berkomunikasi dengan server backend target. Koneksi persisten dapat meningkatkan performa
dengan memungkinkan koneksi TCP dan (jika berlaku) TLS/SSL yang sudah dibuat digunakan kembali, yang
mengurangi overhead latensi. Durasi koneksi yang harus dipertahankan dikontrol
melalui properti waktu tunggu tetap aktif (keepalive.timeout.millis).
Server backend dan Pemroses Pesan Apigee menggunakan waktu tunggu tetap aktif untuk menjaga koneksi tetap terbuka satu sama lain. Setelah tidak ada data yang diterima dalam durasi waktu tunggu tetap aktif, server backend atau Pemroses Pesan dapat menutup koneksi dengan yang lain.
Proxy API yang di-deploy ke Message Processor di Apigee, secara default, memiliki waktu tunggu tetap aktif yang ditetapkan ke
60s kecuali jika diganti. Setelah tidak ada data yang diterima untuk 60s, Apigee akan menutup koneksi dengan server backend. Server backend juga akan mempertahankan waktu tunggu tetap aktif,
dan setelah waktu ini berakhir, server backend akan menutup koneksi dengan Pemroses Pesan.
Implikasi konfigurasi waktu tunggu tetap aktif yang salah
Jika Apigee atau server backend dikonfigurasi dengan waktu tunggu keep-alive yang salah, maka akan menyebabkan kondisi race yang menyebabkan server backend mengirim End Of File
(FIN) yang tidak terduga sebagai respons terhadap permintaan resource.
Misalnya, jika waktu tunggu keep-alive dikonfigurasi dalam Proxy API atau Message
Processor dengan nilai yang lebih besar dari atau sama dengan waktu tunggu server backend upstream, maka
kondisi race berikut dapat terjadi. Artinya, jika Pemroses Pesan tidak menerima data apa pun hingga sangat mendekati batas waktu tunggu tetap aktif server backend, maka permintaan akan masuk dan dikirim ke server backend menggunakan koneksi yang ada. Hal ini dapat menyebabkan
502 Bad Gateway karena error EOF yang Tidak Terduga seperti yang dijelaskan di bawah:
- Misalkan waktu tunggu tetap aktif yang ditetapkan di Message Processor dan server backend adalah 60 detik dan tidak ada permintaan baru hingga 59 detik setelah permintaan sebelumnya ditayangkan oleh Message Processor tertentu.
- Proses Pesan akan melanjutkan dan memproses permintaan yang masuk pada detik ke-59 menggunakan koneksi yang ada (karena waktu tunggu tetap aktif belum berlalu) dan mengirimkan permintaan ke server backend.
- Namun, sebelum permintaan tiba di server backend, nilai batas waktu keep-alive di server backend telah terlampaui.
- Permintaan resource dari Message Processor sedang dalam proses, tetapi server backend
berupaya menutup koneksi dengan mengirimkan paket
FINke Message Processor. - Saat menunggu data diterima, Message Processor malah menerima
FINyang tidak terduga, dan koneksi dihentikan. - Hal ini akan menghasilkan
Unexpected EOFdan selanjutnya502akan ditampilkan ke klien oleh Pemroses Pesan.
Dalam hal ini, kami mengamati bahwa error 502 terjadi karena nilai waktu tunggu tetap aktif yang sama, yaitu 60 detik, dikonfigurasi di Message Processor dan server backend. Demikian pula,
masalah ini juga dapat terjadi jika nilai yang lebih tinggi dikonfigurasi untuk waktu tunggu tetap aktif di Message
Processor daripada di server backend.
Diagnosis
- Jika Anda adalah pengguna Cloud Publik:
- Gunakan alat Pemantauan API atau Trace (seperti yang dijelaskan dalam
Langkah-langkah diagnosis umum) dan verifikasi bahwa Anda memiliki kedua setelan
berikut:
- Kode kerusakan:
messaging.adaptors.http.flow.UnexpectedEOFAtTarget - Sumber kesalahan:
target
- Kode kerusakan:
- Buka Menggunakan tcpdump untuk penyelidikan lebih lanjut.
- Gunakan alat Pemantauan API atau Trace (seperti yang dijelaskan dalam
Langkah-langkah diagnosis umum) dan verifikasi bahwa Anda memiliki kedua setelan
berikut:
- Jika Anda adalah pengguna Private Cloud:
- Gunakan alat Pelacakan atau
log akses NGINX untuk menentukan ID pesan,
kode kesalahan, dan sumber kesalahan untuk error
502. - Telusuri ID pesan di log Message Processor
(/opt/apigee/var/log/edge-message-processor/logs/system.log). - Anda akan melihat
java.io.EOFEXception: eof unexpectedseperti yang ditunjukkan di bawah:2020-11-22 14:42:39,917 org:myorg env:prod api:myproxy rev:1 messageid:myorg-opdk-dc1-node2-17812-56001-1 NIOThread@1 ERROR HTTP.CLIENT - HTTPClient$Context$3.onException() : ClientChannel[Connected: Remote:51.254.225.9:80 Local:10.154.0.61:35326]@12972 useCount=7 bytesRead=0 bytesWritten=159 age=7872ms lastIO=479ms isOpen=true.onExceptionRead exception: {} java.io.EOFException: eof unexpected at com.apigee.nio.channels.PatternInputChannel.doRead(PatternInputChannel.java:45) at com.apigee.nio.channels.InputChannel.read(InputChannel.java:103) at com.apigee.protocol.http.io.MessageReader.onRead(MessageReader.java:80) at com.apigee.nio.channels.DefaultNIOSupport$DefaultIOChannelHandler.onIO(NIOSupport.java:51) at com.apigee.nio.handlers.NIOThread.run(NIOThread.java:220)
- Error
java.io.EOFException: eof unexpectedmenunjukkan bahwa Message Processor menerimaEOFsaat masih menunggu untuk membaca respons dari server backend. - Atribut
useCount=7dalam pesan error di atas menunjukkan bahwa Pemroses Pesan telah menggunakan kembali koneksi ini sekitar tujuh kali dan atributbytesWritten=159menunjukkan bahwa Pemroses Pesan telah mengirim payload permintaan sebesar159byte ke server backend. Namun, ia menerima nol byte kembali saatEOFyang tidak terduga terjadi. -
Hal ini menunjukkan bahwa Message Processor telah menggunakan kembali koneksi yang sama beberapa kali, dan pada kesempatan ini, Message Processor mengirim data, tetapi segera setelah itu menerima
EOFsebelum data diterima. Artinya, ada kemungkinan besar bahwa waktu tunggu tetap aktif server backend lebih singkat atau sama dengan yang ditetapkan di proxy API.Anda dapat menyelidiki lebih lanjut dengan bantuan
tcpdumpseperti yang dijelaskan di bawah.
- Gunakan alat Pelacakan atau
log akses NGINX untuk menentukan ID pesan,
kode kesalahan, dan sumber kesalahan untuk error
Menggunakan tcpdump
- Ambil
tcpdumpdi server backend dengan perintah berikut:tcpdump -i any -s 0 host MP_IP_Address -w File_Name
- Analisis
tcpdumpyang diambil:Berikut contoh output tcpdump:

Dalam contoh
tcpdumpdi atas, Anda dapat melihat hal berikut:- Dalam paket
5992,, server backend menerima permintaanGET. - Dalam paket
6064, ia merespons dengan200 OK. - Dalam paket
6084, server backend menerima permintaanGETlainnya. - Dalam paket
6154, sistem akan merespons dengan200 OK. - Dalam paket
6228, server backend menerima permintaanGETketiga. - Kali ini, server backend menampilkan
FIN, ACKke Pemroses Pesan (paket6285) yang memulai penutupan koneksi.
Koneksi yang sama berhasil digunakan kembali dua kali dalam contoh ini, tetapi pada permintaan ketiga, server backend memulai penutupan koneksi, sementara Pemroses Pesan menunggu data dari server backend. Hal ini menunjukkan bahwa waktu tunggu keep-alive server backend kemungkinan lebih singkat atau sama dengan nilai yang ditetapkan di proxy API. Untuk memvalidasi hal ini, lihat Membandingkan waktu tunggu tetap aktif di Apigee dan server backend.
- Dalam paket
Membandingkan waktu tunggu keep-alive di Apigee dan server backend
- Secara default, Apigee menggunakan nilai 60 detik untuk properti waktu tunggu tetap aktif.
-
Namun, Anda mungkin telah mengganti nilai default di Proxy API. Anda dapat memverifikasinya dengan memeriksa definisi
TargetEndpointtertentu di Proxy API yang gagal dan memberikan error502.Contoh konfigurasi TargetEndpoint:
<TargetEndpoint name="default"> <HTTPTargetConnection> <URL>https://mocktarget.apigee.net/json</URL> <Properties> <Property name="keepalive.timeout.millis">30000</Property> </Properties> </HTTPTargetConnection> </TargetEndpoint>Pada contoh di atas, properti waktu tunggu tetap aktif diganti dengan nilai 30 detik (
30000milidetik). - Selanjutnya, periksa properti waktu tunggu tetap aktif yang dikonfigurasi di server backend Anda. Misalkan
server backend Anda dikonfigurasi dengan nilai
25 seconds. - Jika Anda menentukan bahwa nilai properti waktu tunggu tetap aktif di Apigee lebih tinggi
daripada nilai properti waktu tunggu tetap aktif di server backend seperti dalam contoh
di atas, maka itulah penyebab error
502.
Resolusi
Pastikan properti waktu tunggu tetap aktif selalu lebih rendah di Apigee (dalam komponen Proxy API dan Message Processor) dibandingkan dengan yang ada di server backend.
- Tentukan nilai yang ditetapkan untuk waktu tunggu tetap aktif di server backend.
- Konfigurasi nilai yang sesuai untuk properti waktu tunggu tetap aktif di Proxy API atau Message Processor, sehingga properti waktu tunggu tetap aktif lebih rendah daripada nilai yang ditetapkan di server backend, menggunakan langkah-langkah yang dijelaskan dalam Mengonfigurasi waktu tunggu tetap aktif di Message Processor.
Jika masalah masih berlanjut, buka Informasi diagnostik yang harus dikumpulkan.
Praktik Terbaik
Sangat disarankan agar komponen hilir selalu memiliki nilai batas waktu tetap aktif yang lebih kecil
daripada yang dikonfigurasi di server hulu untuk menghindari kondisi persaingan dan
error 502 semacam ini. Setiap hop hilir harus lebih rendah daripada setiap hop hulu. Di Apigee
Edge, sebaiknya gunakan panduan berikut:
- Waktu tunggu tetap aktif klien harus kurang dari waktu tunggu tetap aktif Edge Router.
- Waktu tunggu tetap aktif Edge Router harus kurang dari waktu tunggu tetap aktif Message Processor.
- Waktu tunggu tetap aktif Message Processor harus lebih kecil daripada waktu tunggu tetap aktif server target.
- Jika Anda memiliki hop lain di depan atau di belakang Apigee, aturan yang sama harus diterapkan. Anda harus selalu menyerahkan tanggung jawab untuk menutup koneksi dengan upstream kepada klien downstream.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Dukungan Apigee Edge.
Jika Anda adalah pengguna Cloud Publik, berikan informasi berikut:
- Nama organisasi
- Nama lingkungan
- Nama Proxy API
- Selesaikan perintah
curluntuk mereproduksi error502 - File rekaman aktivitas yang berisi permintaan dengan error
502 Bad Gateway - Unexpected EOF - Jika error
502tidak terjadi saat ini, berikan jangka waktu dengan informasi zona waktu saat error502terjadi di masa lalu.
Jika Anda adalah pengguna Private Cloud, berikan informasi berikut:
- Pesan error lengkap yang diamati untuk permintaan yang gagal
- Nama Organisasi, Lingkungan, dan Proxy API yang Anda amati
502errornya - Paket Proxy API
- File rekaman aktivitas yang berisi permintaan dengan error
502 Bad Gateway - Unexpected EOF - Log akses NGINX
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log - Log Message Processor
/opt/apigee/var/log/edge-message-processor/logs/system.log - Jangka waktu dengan informasi zona waktu saat terjadi error
502 Tcpdumpsyang dikumpulkan di Pemroses Pesan atau server backend, atau keduanya saat error terjadi