Server

502 Bad Gateway — Arti dan Cara Mengatasinya

Diperbarui 2026-08-29Baca ~8 menit

502 Bad Gateway termasuk kode error yang cukup berguna, karena memberi tahu sesuatu yang spesifik: permintaan Anda sampai ke sebuah server, server itu meneruskannya ke server lain di belakangnya, dan jawaban yang kembali tidak bisa dipakai. Situs tidak sekadar "mati" — ada satu mata rantai yang putus.

Mengetahui mata rantai mana mempersempit pencarian secara drastis. Artikel ini menjelaskan apa yang dimaksud "gateway" dalam praktik, beda 502 dengan 500 dan 504 yang sering tertukar, penyebab diurutkan dari yang paling sering terbukti, serta apa yang realistis bisa Anda lakukan bila memakai shared hosting.

Arti "Bad Gateway" Sebenarnya

Sebagian besar website tidak dilayani oleh satu program saja. Server depan — biasanya Nginx, Apache atau CDN seperti Cloudflare — menerima permintaan Anda lalu menyerahkannya ke sesuatu di belakangnya: PHP-FPM, proses Node, aplikasi Python, atau web server lain. Dalam susunan itu, server depan berperan sebagai gateway.

502 adalah cara server depan mengatakan dengan jujur bahwa ia sudah menjalankan tugasnya dan yang di belakangnya tidak. Entah tidak menjawab sama sekali, menjawab dengan format yang tidak bisa dibaca, atau memutus koneksi di tengah jawaban. Server depan sendiri sehat — justru itulah sebabnya Anda menerima halaman error yang rapi, bukan timeout.

💡 Poin pentingnya: 502 dihasilkan oleh mesin di depan, dan mesin itu baik-baik saja. Jangan buang waktu me-restart Nginx padahal Nginx adalah komponen yang masih cukup hidup untuk memberi tahu Anda ada masalah.

Beda 502 dengan 500 dan 504

Ketiganya sering dianggap sama sebagai "error server", dan itu membuat orang mencari di tempat yang keliru. Padahal ketiganya menunjuk komponen yang berbeda.

KodeArtinyaPeriksa di mana lebih dulu
500 Internal Server ErrorAplikasi berjalan lalu melempar errorKode Anda, log error PHP, plugin atau tema yang rusak
502 Bad GatewayBackend memberi jawaban kosong atau tidak validApakah proses backend berjalan? Crash atau kehabisan memori?
503 Service UnavailableServer hidup tetapi sengaja tidak melayaniMode maintenance, proteksi beban, atau antrean penuh
504 Gateway TimeoutBackend terjangkau tetapi menjawab terlalu lambatQuery lambat, API eksternal lambat, pengaturan timeout
💡 Pembagian yang bersih: 500 berarti aplikasi berjalan lalu gagal. 502 berarti aplikasi tidak menjawab dengan benar. 504 berarti aplikasi menjawab terlambat. Gejalanya sama bagi pengunjung, penyelidikannya tiga hal berbeda.

Penyebab Umum, Diurutkan dari yang Paling Sering

  • Proses backend crash atau memang belum dijalankan. PHP-FPM, Node atau service aplikasi tidak berjalan sehingga tidak ada lawan bicara bagi server depan. Ini penyebab paling sering, jauh di atas yang lain.
  • Server kehabisan memori dan kernel mematikan backend. Cari catatan OOM-killer di log sistem — prosesnya hilang tanpa meninggalkan error sendiri, dan itulah yang menghasilkan 502.
  • Backend kelebihan beban dan menolak koneksi baru. Semua worker PHP-FPM sibuk sehingga permintaan baru langsung ditolak, bukan diantrekan.
  • Target proxy salah setel. Setelah deployment atau perubahan konfigurasi, server depan mengarah ke port atau socket yang keliru. Kalau 502 muncul persis setelah sebuah perubahan, mulailah dari sini.
  • Aturan firewall di antara kedua komponen. Sering terjadi pada susunan multi-server ketika front end dan aplikasi berada di mesin berbeda.
  • Backend mengembalikan keluaran yang rusak. Fatal error PHP yang tercetak sebelum header, atau proses yang menulis ke stdout padahal tidak seharusnya, menghasilkan jawaban yang tidak bisa diproses gateway.
  • Masalah pada CDN atau reverse proxy. Kalau Anda memakai Cloudflare, 502 bisa berasal dari Cloudflare sendiri, bukan dari origin — halaman error-nya biasanya menyebutkan yang mana.

Periksa dengan Urutan Ini

Urutan berikut disusun untuk menyingkirkan penyebab paling mungkin dengan usaha paling kecil, sekaligus menghindari kesalahan klasik yaitu me-restart apa saja sampai kebetulan berubah.

  • Pastikan backend memang berjalan. Di server Linux: "systemctl status php-fpm" atau perintah setara untuk stack Anda. Kalau mati, itu jawabannya dan pertanyaan berikutnya adalah kenapa.
  • Baca log error server depan sebelum me-restart apa pun. Nginx menulis alasan sebenarnya ke /var/log/nginx/error.log — pesan "connect() failed", "no live upstreams" dan "recv() failed" masing-masing menunjuk arah berbeda. Restart lebih dulu akan menghapus bukti ini.
  • Periksa memori bebas dan cari OOM killer di log sistem. Kalau backend terus mati saat beban naik tanpa mencatat error sendiri, kernel yang mematikannya dan mesinnya terlalu kecil untuk trafik tersebut.
  • Pastikan target proxy cocok dengan tempat backend benar-benar mendengarkan — port atau path socket di konfigurasi server depan versus di konfigurasi backend. Salah satu digit saja cukup.
  • Restart backend, lalu server depan, dengan urutan itu. Baru sekarang, setelah bukti terkumpul.
  • Kalau muncul hilang bukan terus-menerus, cocokkan dengan grafik trafik. 502 yang muncul saat puncak dan hilang saat sepi adalah masalah kapasitas, bukan salah konfigurasi, dan tidak akan sembuh oleh perubahan setting apa pun.
💡 Tahan keinginan untuk langsung reboot seluruh server. Reboot sering menghilangkan 502 sementara sekaligus menghapus semua petunjuk penyebabnya, sehingga besok muncul lagi tanpa Anda belajar apa-apa.

Apa yang Bisa Dilakukan di Shared Hosting

Di shared hosting Anda tidak bisa memeriksa PHP-FPM atau membaca log sistem, jadi sebagian besar langkah di atas tertutup. Itu bukan berarti Anda tidak berdaya, tetapi pendekatannya memang berbeda.

Mulailah dengan memastikan apakah error ini hanya menimpa situs Anda atau semua situs di server tersebut — kalau penyedia punya halaman status, periksa di sana lebih dulu. Lalu pikirkan apa yang berubah di sisi Anda: pembaruan plugin, pergantian tema, atau skrip yang tiba-tiba memakai memori jauh lebih besar. Mengembalikan perubahan itu biasanya lebih cepat daripada mendiagnosisnya.

Kalau 502 terus kembali pada trafik normal, jawaban jujurnya sering kali akun tersebut sudah melampaui kapasitas shared hosting. Di server bersama, resource Anda dibagi dengan semua akun lain, dan lonjakan trafik tetangga bisa menjatuhkan situs Anda tanpa kesalahan apa pun dari pihak Anda. Pindah ke VPS dengan CPU dan RAM khusus menghapus seluruh kategori masalah ini, sekaligus memberi Anda log yang diperlukan untuk mendiagnosis masalah berikutnya sendiri.

Berhenti berbagi server dengan lonjakan trafik orang lain

Cloud VPS dengan CPU dan RAM khusus, akses root penuh dan log asli yang bisa Anda baca — mulai ฿150/bulan.

Pertanyaan yang Sering Diajukan

Apakah 502 kesalahan saya atau penyedia hosting?

Tergantung komponen mana yang gagal. Kalau aplikasi Anda crash atau kehabisan memori, itu sisi Anda. Kalau infrastruktur atau jaringan penyedia yang rusak, itu sisi mereka. Cara tercepat mengetahuinya adalah memeriksa apakah situs lain di server yang sama ikut terpengaruh — kalau ya, bukan kode Anda penyebabnya.

Kenapa 502 muncul hilang, bukan rusak terus?

502 yang muncul hilang hampir selalu berarti batas kapasitas, bukan salah konfigurasi. Saat beban naik, backend kehabisan worker atau memori, membuang permintaan, lalu pulih ketika trafik turun. Sebaliknya, salah konfigurasi merusak setiap permintaan secara konsisten.

Apakah 502 merusak SEO?

Kalau sebentar, tidak. Google mencoba lagi dan menganggap gangguan singkat sebagai hal sementara. 502 yang berlangsung berhari-hari lain cerita — laju crawl melambat dan halaman bisa hilang dari indeks. Patokan praktisnya: hitungan jam masih aman, hitungan hari tidak.

Saya memakai Cloudflare. Bagaimana tahu 502 berasal dari Cloudflare atau server saya?

Halaman error Cloudflare punya identitas visual sendiri, memuat ray ID dan diagram yang menunjukkan titik mana yang gagal. 502 polos tanpa gaya berarti berasal dari origin Anda. Kalau diagramnya menunjukkan kegagalan di origin, Cloudflare baik-baik saja dan masalahnya di sisi Anda.