Website yang Anda buka hari ini hampir tidak pernah dilayani satu komputer saja. Permintaan Anda biasanya melewati beberapa tangan. Ada layanan pengaman dan pemercepat di pinggir jaringan, lalu web server, lalu program yang menyusun halamannya, lalu basis data di belakangnya.

Susunan berlapis itu membuat website sanggup melayani banyak pengunjung sekaligus. Ia juga melahirkan satu bentuk kegagalan yang khas: salah satu tangan di rantai tersebut bertanya kepada tangan berikutnya, lalu menerima jawaban yang tidak bisa dipakai. Ketika itu terjadi, yang sampai ke layar Anda adalah pesan 502 Bad Gateway.

Artikel ini membahas arti pesan tersebut, cara membaca petunjuk yang ada di layarnya, dan cara memperbaikinya — dari sisi pengunjung maupun dari sisi pemilik website.

502 Bad Gateway Artinya Jawaban Tidak Sah dari Server di Belakang

502 Bad Gateway artinya sebuah server yang bertugas meneruskan permintaan Anda sudah berhasil menghubungi server di belakangnya, tetapi jawaban yang diterimanya tidak sah. Standar HTTP yang berlaku sekarang, RFC 9110, merumuskannya sebagai server yang sedang bertindak sebagai gateway atau proxy dan menerima jawaban tidak valid dari server yang diaksesnya.

Dua hal langsung tersingkir begitu pesan ini muncul. Yang pertama, jaringan Anda bekerja. Permintaan Anda sampai ke tujuan, dan yang tampil di layar justru balasan resmi dari server tujuan tersebut. Yang kedua, halaman ini bukan halaman yang hilang. Alamatnya benar dan situsnya ada.

Bila Anda terjemahkan bad gateway dari bahasa Inggris potong demi potong, hasilnya “gerbang yang buruk”. Terjemahan harfiah itu justru menyesatkan. Maksud pesan ini berbeda: yang buruk bukan gerbangnya, melainkan jawaban yang lewat di gerbang tersebut. Jadi arti bad gateway di sini adalah perantara yang gagal mendapat jawaban sah dari server di belakangnya. Bad gateway adalah istilah yang menunjuk peran, bukan kerusakan perangkat.

Karena itu angka 502 masuk kelompok 5xx, yaitu kelompok kode yang menandai kesalahan di pihak server. Dalam dokumentasi berbahasa Inggris, ia ditulis sebagai status code 502. Bandingkan dengan kelompok 4xx seperti 404 yang menandai kesalahan di pihak permintaan. Pembedaan itu bukan soal penamaan semata, sebab ia menentukan siapa yang bisa memperbaikinya.

Kalau Anda mencari jawaban singkat untuk apa itu 502 Bad Gateway, kalimatnya begini: perantara di sisi situs bertanya kepada server di belakangnya, lalu menerima jawaban yang tidak bisa dipakai. Arti 502 Bad Gateway karena itu bukan "sambungan Anda gagal", dan bukan pula "halaman tidak ditemukan".

Bentuk lain yang mungkin Anda temui: error 502, kode 502, HTTP 502, 502 Bad Gateway nginx, atau Bad gateway dengan baris Error code 502 di bawahnya. Semuanya menunjuk satu keadaan yang sama, dan perbedaan bentuknya justru berguna — akan kita pakai sebagai petunjuk di bagian berikut.

Membaca Layar 502: Apa yang Dibocorkan Kaki Halamannya

Halaman 502 tampak seragam pada pandangan pertama, padahal tidak. Baris kecil di kaki halaman menyebutkan perangkat lunak yang mencetak pesan itu, dan perangkat lunak tersebut adalah petunjuk pertama tentang di mana masalahnya harus dicari.

Ada lima bentuk yang paling sering ditemui pembaca di Indonesia:

  1. 502 Bad Gateway dengan kaki nginx: bentuk paling umum. Kadang lengkap dengan versinya — nginx/1.18.0 (Ubuntu), nginx/1.22.1, nginx/1.24.0 (Ubuntu), nginx/1.28.0, sampai nginx/1.30.2. Angka versi itu hanya menyebut perangkat lunak yang dipasang penyedia dan tidak menunjuk penyebabnya, jadi tidak perlu dicari artinya. Yang penting, Nginx yang menjawab, dan log yang perlu dibaca adalah log Nginx.
  2. 502 Bad Gateway dengan kaki openresty: OpenResty adalah Nginx yang dibundel dengan Lua. Log dan berkas pengaturannya mengikuti pola Nginx, sehingga penanganannya sama.
  3. 502 Bad Gateway dengan kaki Tengine, kadang tertulis Powered by Tengine: Tengine adalah turunan Nginx buatan Alibaba. Menemukannya berarti situs itu berjalan di belakang infrastruktur yang memakai turunan tersebut.
  4. Judul Bad gateway dengan baris Error code 502: ini bentuk khas halaman Cloudflare. Perbedaannya penting dan dibahas tersendiri nanti.
  5. HTTP Error 502 - Bad Gateway: bentuk yang dipakai IIS, web server Microsoft, biasanya pada situs berbasis Windows Server.

Bentuk keempat itu punya ciri khas yang perlu diperhatikan. Judul dan baris kodenya terbaca menyambung di layar, sehingga orang sering menyalinnya ke kolom pencarian sebagai satu kalimat panjang, bad gateway error code 502. Bentuk itu selalu berasal dari Cloudflare, tidak pernah dari Nginx.

Versi bahasa Inggris dari beberapa halaman menambahkan satu kalimat penjelas yang sering disalin orang ke kolom pencarian: an invalid response was received from the upstream server. Kalimat itu terjemahan langsung dari definisi resminya. Kata upstream di situ berarti server di belakang, yaitu server yang ditanyai dan bukan server yang menjawab Anda.

Satu hal yang perlu diperhatikan, nomor versi di kaki halaman bukan sekadar hiasan. Versi yang tercetak memberi tahu bahwa yang menjawab Anda adalah perangkat lunak yang dipasang penyedia, bukan program situs itu sendiri. Kalau Anda pemilik situsnya, itu sekaligus penanda bahwa program aplikasi Anda belum sempat berjalan sama sekali.

Lima layar 502: kaki nginx/1.24.0, openresty dan Tengine menunjuk log Nginx; yang berlogo ke sisi Cloudflare.
Lima layar 502: kaki nginx/1.24.0, openresty dan Tengine menunjuk log Nginx; yang berlogo ke sisi Cloudflare.

Siapa "Gateway" yang Dimaksud, dan Kenapa Bukan Router Anda

Kata gateway pada pesan ini rutin disalahpahami sebagai perangkat di rumah. Dugaan itu keliru, dan sumber kekeliruannya ada pada penamaan.

Dalam RFC 9110, gateway punya arti khusus. Ia adalah perantara yang menerima permintaan lalu meneruskannya ke server lain di belakangnya, sambil tampil seolah-olah dirinyalah server aslinya. Dokumen itu menyebut secara eksplisit bahwa gateway dalam pengertian HTTP sama dengan reverse proxy, yaitu perantara yang berdiri di depan server dan mewakilinya.

Jadi gateway yang dimaksud berada di sisi penyedia situs, jauh dari jangkauan Anda. Menyalakan ulang router, mengganti kabel, atau berpindah ke jaringan lain karena itu tidak menyentuh penyebabnya sama sekali. Arti kata gateway di luar konteks HTTP — termasuk sebagai gerbang antar jaringan di rumah Anda — dibahas terpisah di artikel gateway.

Rantai Perantara: Di Titik Mana 502 Dilahirkan

Supaya pencarian penyebabnya tidak meraba-raba, rantainya perlu dilihat utuh. Sebuah situs modern umumnya punya tiga lapis perantara sebelum permintaan tiba di program yang menyusun halaman.

Permintaan turun dari browser ke Cloudflare, Nginx, lalu PHP-FPM; Nginx mencetak 502 saat jawaban tidak sah.
Permintaan turun dari browser ke Cloudflare, Nginx, lalu PHP-FPM; Nginx mencetak 502 saat jawaban tidak sah.

Yang mencetak pesan 502 adalah perantara yang gagal mendapat jawaban benar, bukan pihak yang bermasalah. Inilah sumber kebingungan yang paling mahal saat mencari penyebab: kaki halaman menyebut Nginx, sementara yang rusak hampir selalu program di belakangnya.

Rantai ini juga menjelaskan mengapa satu pesan yang sama bisa berasal dari tiga tempat berbeda. Cloudflare mencetak 502 kalau server Anda tidak menjawab dengan benar. Nginx mencetak 502 kalau PHP-FPM tidak menjawab dengan benar. Dan kalau situs Anda memakai penyeimbang beban seperti HAProxy, lapisan itu pun bisa mencetak pesan serupa.

Beda 502, 503, dan 504 Menurut Definisi Resminya

Tiga kode ini sering dipakai bergantian dalam percakapan sehari-hari, padahal definisi resminya berbeda tajam. Membedakannya menghemat waktu, karena masing-masing menunjuk kegagalan di tahap yang berbeda.

KodeDefinisi resmi (RFC 9110)Bahasa kerjanya
500 Internal Server ErrorServer menemui keadaan tak terduga yang menghalanginya memenuhi permintaanProgram berjalan, lalu gagal di tengah
502 Bad GatewayPerantara menerima jawaban tidak sah dari server di belakangnyaJawaban datang, tetapi tidak bisa dipakai
503 Service UnavailableServer tidak sanggup melayani karena beban sesaat atau pemeliharaanPerantaranya sendiri yang menolak, bukan yang di belakang
504 Gateway TimeoutPerantara tidak menerima jawaban tepat waktu dari server di belakangnyaJawaban tidak datang sampai batas waktu

Pembedaan 502 dengan 504 adalah yang paling berguna dalam praktik. Pada 502, jawaban sudah datang tetapi bentuknya salah — sambungan ditutup separuh jalan, atau isinya tidak memenuhi aturan HTTP. Pada 504, tidak ada jawaban sama sekali sampai batas waktu terlampaui.

Bedanya dengan 500 juga tegas. Halaman 500 berarti program aplikasi Anda berhasil dijalankan lalu berhenti karena kesalahan di dalamnya. Halaman 502 berarti program itu bahkan belum berhasil dihubungi dengan benar. Penanganan 500 punya jalur sendiri, dan langkah-langkahnya dibahas di panduan mengatasi 500 Internal Server Error.

500 gagal di tengah, 502 jawaban tidak sah, 503 perantara tidak sanggup, 504 jawaban tidak datang.
500 gagal di tengah, 502 jawaban tidak sah, 503 perantara tidak sanggup, 504 jawaban tidak datang.

Kalau Anda pengunjung biasa, pembedaan ini tetap berguna untuk satu hal. Keempatnya sama-sama menunjuk sisi server, jadi tidak satu pun bisa Anda perbaiki dari perangkat sendiri.

Halaman 502 Cloudflare: Berlogo Berarti Bukan Cloudflare yang Salah

Banyak situs Indonesia berada di belakang Cloudflare, dan itu membuat halaman 502 punya satu petunjuk tambahan yang jarang dimanfaatkan. Aturannya kebalikan dari dugaan umum.

Menurut dokumentasi Cloudflare sendiri, halaman bermerek Cloudflare — lengkap dengan logo dan baris Error code 502 — muncul ketika server asal Anda yang mengirim 502. Cloudflare hanya meneruskannya dalam kemasan miliknya. Sebaliknya, halaman polos tanpa logo apa pun menandakan Cloudflare sendiri yang gagal berbicara dengan server asal Anda.

Jadi melihat logo Cloudflare di halaman error bukan tanda Cloudflare sedang bermasalah. Justru sebaliknya: logo itu berarti Cloudflare bekerja normal dan sedang menyampaikan kabar buruk dari server Anda.

Halaman 502 berlogo Cloudflare berarti origin yang salah; halaman polos berarti Cloudflare yang gagal.
Halaman 502 berlogo Cloudflare berarti origin yang salah; halaman polos berarti Cloudflare yang gagal.

Untuk memastikan lalu lintas situs memang lewat Cloudflare, buka namasitus.com/cdn-cgi/trace di browser. Halaman itu mengeluarkan beberapa baris teks pendek berisi pusat data yang melayani Anda. Keluaran tersebut pula yang diminta tim dukungan Cloudflare, bersama waktu kejadian lengkap dengan zona waktu dan alamat halaman yang gagal.

Cloudflare juga punya penyebab 502 yang khas dari sisinya sendiri. Server asal mengirim isi terkompresi gzip tetapi lupa memperbarui header content-length. Panjang yang dijanjikan karena itu tidak cocok dengan isi sesungguhnya. Selain itu, gangguan antara Cloudflare dan server asal umumnya memakai kode khusus di luar 502. Kode 521 menandai server asal yang mati, 522 menandai sambungan yang kehabisan waktu, dan 525 menandai jabat tangan TLS yang gagal. Cara kerja lapisan ini dibahas lebih jauh di artikel CDN Cloudflare.

Yang Bisa dan Tidak Bisa Dilakukan Pengunjung

Bagian ini perlu dikatakan terus terang: sebagai pengunjung, Anda hampir tidak bisa memperbaiki 502. Kenapa 502 Bad Gateway tetap tampil di layar Anda padahal masalahnya di tempat lain? Sebab pesan itu dicetak oleh server orang lain, tentang program milik orang lain. Yang tersisa untuk Anda adalah memastikan dugaan, bukan memperbaiki.

Tiga uji berikut cukup dan hanya butuh beberapa menit:

  1. Buka situs lain: kalau situs lain normal, jaringan Anda sehat dan yang bermasalah memang situs tujuan.
  2. Buka situs yang sama lewat jaringan atau perangkat lain: pakai data seluler, atau minta orang lain mencobanya. Kalau tetap 502 di mana-mana, masalahnya di sisi situs dan tidak ada yang bisa Anda kerjakan.
  3. Tunggu, lalu muat ulang: banyak kejadian 502 berumur pendek, terutama yang lahir saat aplikasi dinyalakan ulang atau di puncak jam sibuk.

Tiga langkah yang sering disarankan justru tidak menyentuh penyebabnya. Mengganti server DNS tidak menolong, sebab pencarian alamat sudah berhasil — buktinya Anda menerima jawaban 502. Membersihkan cache browser juga tidak, karena halaman error tersebut baru saja diambil dari server, bukan dari simpanan lokal. Menyalakan ulang router pun sia-sia, karena perangkat Anda tidak terlibat dalam percakapan yang gagal.

Ada satu pengecualian sempit yang membuat langkah-langkah itu masuk akal. Bila 502 hanya Anda alami sementara orang lain membukanya normal, kemungkinan Anda melewati perantara yang berbeda. Kandidatnya VPN, proxy perusahaan, atau simpanan CDN di wilayah Anda. Dalam kondisi itu, mematikan VPN dan mencoba jaringan lain memang layak dicoba.

Perlu diketahui juga bahwa 502 tidak bisa dilewati dari sisi pengunjung. Tidak ada cara mem-bypass pesan ini: setelan browser, mode penyamaran, maupun ekstensi tidak mengubah jawaban server. Pesan tersebut adalah jawaban resmi, dan satu-satunya yang bisa mengubahnya adalah pemilik situs.

502 Bad Gateway Coretax dan Layanan Publik Saat Jam Sibuk

Pola 502 paling mudah dipahami lewat kejadian nyata, dan Indonesia punya satu contoh yang tercatat rapi. Pada 30 April 2026, hari terakhir pelaporan SPT tahunan, layanan Coretax milik Direktorat Jenderal Pajak membalas pengaksesnya dengan pesan 502 Bad Gateway sekitar pukul 15.00 WIB.

Angkanya menjelaskan banyak hal. Sampai pukul 13.00 hari itu, tercatat 12.705.335 SPT sudah terlapor, dari 18.837.611 wajib pajak yang terdaftar di Coretax. Kring Pajak, saluran resmi Direktorat Jenderal Pajak, menyebut penyebabnya sebagai meningkatnya beban akses sehubungan dengan jatuh tempo pelaporan.

Dihubungkan dengan rantai perantara tadi, urutannya masuk akal. Permintaan yang datang bersamaan melampaui jumlah program pekerja yang tersedia di belakang perantara. Permintaan berikutnya mengantre, antreannya penuh, dan program di belakang mulai menutup sambungan atau berhenti menjawab sebelum selesai. Perantara di depan menerima jawaban separuh itu, menilainya tidak sah, lalu mencetak 502.

Kalau Anda sedang berada di posisi pengakses layanan seperti itu, langkah yang realistis hanya tiga. Tunggu beberapa menit lalu coba lagi, karena beban seperti ini naik-turun dalam hitungan menit. Pilih jam yang jauh dari tenggat, sebab puncak beban terpusat di hari-hari terakhir. Dan simpan bukti waktu kejadian, supaya Anda punya pijakan bila perlu menghubungi saluran resmi. Yang tidak akan menolong sama sekali adalah memuat ulang halaman berkali-kali tanpa jeda, karena setiap muatan baru ikut menambah beban yang justru sedang jadi penyebabnya.

Cara Mengatasi 502 Bad Gateway di HP Android

Di layar ponsel, halaman 502 kerap disangka gangguan kuota atau sinyal. Dugaan itu wajar, sebab tampilan errornya mirip dengan kegagalan jaringan, tetapi maknanya berbeda jauh. Pesan 502 hanya bisa muncul kalau ponsel Anda berhasil tersambung ke server tujuan.

Cara memastikannya sederhana. Matikan Wi-Fi, buka situs yang sama lewat data seluler, lalu perhatikan hasilnya. Kalau pesan 502 tetap muncul di kedua jalur, penyebabnya di sisi situs. Kalau satu jalur berhasil sementara jalur lain memberi pesan berbeda, yang Anda hadapi kemungkinan bukan 502 lagi. Pesan seperti "situs tidak dapat dijangkau" menandakan kegagalan sambungan, dan jenis itu dibahas di artikel ERR_CONNECTION_TIMED_OUT.

Satu pertanda tambahan yang berguna di ponsel: bila aplikasi resmi layanan tersebut juga gagal sementara aplikasi lain lancar, hampir pasti server layanan itulah yang sedang bermasalah. Aplikasi dan situs umumnya memakai program yang sama di belakang, sehingga keduanya jatuh bersamaan.

Penyebab 502 Bad Gateway di Server Anda Sendiri

Bagian ini untuk Anda yang memegang situsnya. Penyebab 502 hampir selalu jatuh ke satu dari enam keadaan berikut, dan urutannya disusun dari yang paling sering ditemui.

  1. Program aplikasi mati atau belum menyala: layanan PHP-FPM, Node.js, atau Gunicorn berhenti setelah pembaruan, kesalahan pengaturan, atau penyalaan ulang server. Perantara di depannya tetap hidup, jadi yang tampil 502 dan bukan situs kosong.
  2. Pekerja aplikasi habis terpakai: PHP-FPM membatasi jumlah proses worker lewat pm.max_children, dan nilai itu wajib diisi sendiri karena dokumentasinya tidak menetapkan bawaan. Batas tersebut adalah batas permintaan yang dilayani bersamaan; kelebihannya mengantre. Ketika antrean penuh terlalu lama, sambungan terputus dan lahir 502.
  3. Pekerja dimatikan karena memori habis: satu permintaan berat — impor data, pembuatan laporan, pengolahan gambar besar — membuat proses memakai memori melampaui yang tersedia, lalu kernel menghentikannya. Sambungan ke perantara terputus di tengah jalan. Server tanpa swap memory lebih cepat mengalami ini.
  4. Header jawaban melampaui ukuran penampung: Nginx membaca bagian awal jawaban ke sebuah penampung yang bawaannya proxy_buffer_size 4k atau 8k bergantung sistemnya. Dokumentasi resminya menyatakan bahwa jawaban yang melampaui ukuran itu dianggap tidak sah. Penyebab lapangannya biasanya cookie sesi yang menumpuk atau header autentikasi yang panjang.
  5. Alamat atau soket tujuan salah: berkas pengaturan menunjuk soket atau porta yang tidak dipakai lagi setelah pembaruan versi PHP. Perantara mencoba menghubungi, ditolak, lalu mencetak 502.
  6. Kegagalan TLS ke server di belakang: pada susunan yang memakai HTTPS antar lapisan, sertifikat kedaluwarsa atau versi TLS yang tidak cocok membuat jabat tangan gagal. Jawaban yang diterima perantara karena itu tidak sah.

Pembaca yang memakai hosting bersama perlu tahu satu hal penting. Angka pada poin kedua dan ketiga ditentukan penyedia dan tidak bisa Anda ubah sendiri, karena satu server dipakai bersama banyak pelanggan. Yang bisa Anda lakukan adalah menekan pemakaian dari sisi aplikasi, atau naik ke paket dengan batas yang lebih longgar. Kalau situs Anda sudah rutin menyentuh batas itu, layanan web hosting dengan alokasi lebih besar biasanya menyelesaikannya tanpa perlu mengurus server sendiri.

Enam penyebab 502 di server: proses mati, pekerja habis, memori habis, header besar, tujuan salah, TLS gagal.
Enam penyebab 502 di server: proses mati, pekerja habis, memori habis, header besar, tujuan salah, TLS gagal.

Membaca Error Log: Enam Baris Nginx dan Artinya

Menebak penyebab 502 dari gejalanya saja memakan waktu, padahal jawabannya biasanya sudah tertulis. Pesan 502 Bad Gateway Nginx hampir selalu punya satu baris penjelas di error log, dan kalimatnya cukup baku untuk dipetakan langsung ke tindakan.

Buka log lebih dulu. Pada server yang Anda kelola sendiri, perintahnya:

Bash
tail -n 50 /var/log/nginx/error.log

Di hosting bersama, berkasnya diakses lewat menu Errors pada panel; caranya dibahas di artikel error log.

Enam kalimat berikut adalah yang paling sering muncul bersamaan dengan 502:

Kalimat di error logArtinyaTindakan
upstream prematurely closed connectionProgram di belakang menutup sambungan sebelum jawaban selesaiPeriksa apakah proses dihentikan karena memori atau batas waktu
upstream sent too big headerHeader jawaban melampaui proxy_buffer_sizeNaikkan proxy_buffer_size dan proxy_busy_buffers_size
connect() failed (111: Connection refused)Tidak ada yang mendengarkan di tujuanNyalakan layanannya, lalu cocokkan soket atau porta
no live upstreamsSemua tujuan sudah ditandai gagalPeriksa kesehatan seluruh anggota kelompok tujuan
upstream prematurely closed FastCGI stdoutProses PHP berhenti di tengah pengirimanPeriksa batas memori PHP dan request_terminate_timeout
upstream sent invalid headerJawaban tidak memenuhi aturan HTTPPeriksa keluaran aplikasi, umumnya ada teks bocor sebelum header

Bentuk yang sama di luar Nginx

Apache memakai kalimatnya sendiri. Baris yang menyertai 502 pada Apache berbunyi AH01102: error reading status line from remote server, diikuti nama host dan porta tujuan. Artinya sepadan dengan baris pertama pada tabel di atas: jawaban dari server di belakang tidak terbaca sebagai jawaban HTTP yang sah. Susunan Apache dan cara kerjanya dibahas di artikel Apache.

Pada LiteSpeed dan OpenLiteSpeed, kegagalan serupa lebih sering tampil sebagai 503 daripada 502, karena perantaranya menghitung kesehatan proses di belakang dengan cara berbeda. Membaca log tetap langkah pertamanya.

Cara Mengatasi 502 Bad Gateway di Server Anda

Enam langkah berikut disusun berurutan, dari solusi yang paling sering menyelesaikan masalah. Jangan melompat ke langkah keempat sebelum langkah kedua dikerjakan, karena mengubah angka tanpa membaca log hanya memindahkan gejalanya.

Langkah #1: Pastikan program di belakang benar-benar hidup

Periksa status layanannya lebih dulu. Untuk PHP-FPM pada Ubuntu:

Bash
systemctl status php8.3-fpm

Bila statusnya bukan active (running), nyalakan dengan systemctl start php8.3-fpm. Kalau layanan mati lagi beberapa saat kemudian, penyebabnya ada di dalam aplikasi dan bukan di perantara — lanjutkan ke langkah kedua.

Langkah #2: Baca log dan cocokkan ke tabel penyebab

Buka error log seperti pada bagian sebelumnya, lalu cari baris yang waktunya berdekatan dengan kejadian 502. Satu baris log sudah cukup menghemat berjam-jam dugaan. Langkah ini yang menentukan tiga langkah berikutnya, jadi jangan dilewati.

Langkah #3: Naikkan penampung bila pesannya "too big header"

Tambahkan dua baris ini di dalam blok server atau location pengaturan Nginx Anda:

Nginx
proxy_buffer_size   16k;
proxy_busy_buffers_size 32k;
proxy_buffers       8 16k;

Angka 16k adalah titik awal yang aman untuk situs dengan sesi login dan header autentikasi. Uji pengaturannya dengan nginx -t sebelum memuat ulang, lalu jalankan systemctl reload nginx.

Langkah #4: Sesuaikan jumlah pekerja dengan memori yang tersedia

Nilai pm.max_children yang terlalu kecil melahirkan antrean; yang terlalu besar melahirkan kehabisan memori. Hitung dengan membagi memori yang boleh dipakai PHP dengan pemakaian rata-rata satu proses:

Bash
ps -o rss= -C php-fpm | awk '{s+=$1} END
{print s/NR/1024" MB per proses"}'

Sebagai contoh konkret, server dengan 4 GB memori yang menyisakan 2,5 GB untuk PHP dan pemakaian 60 MB per proses sanggup menampung sekitar 40 pekerja. Isikan angka itu pada pm.max_children di berkas kolam PHP-FPM Anda, lalu muat ulang layanannya.

Langkah #5: Pasang batas daur hidup untuk aplikasi yang bocor memori

Aplikasi yang pemakaian memorinya menanjak seiring waktu perlu diberi titik penyegaran. Isi pm.max_requests dengan angka seperti 500, sehingga setiap proses dimulai ulang setelah melayani 500 permintaan. Nilai bawaannya 0, yang berarti proses berjalan tanpa penyegaran sama sekali.

Langkah #6: Verifikasi ulang dan catat temuannya

Muat halaman yang tadi gagal, lalu pantau error log selama beberapa menit di bawah lalu lintas normal. Catat baris log yang tadi Anda temukan bersama tindakan yang menyelesaikannya. Catatan seperti ini yang membuat kejadian berikutnya selesai dalam hitungan menit, dan alasannya diuraikan di artikel troubleshooting.

Batas Perbaikan 502 dan Hal yang Perlu Anda Pertimbangkan

Setiap angka yang dinaikkan di bagian sebelumnya punya konsekuensi, dan sebagian menukar satu masalah dengan masalah lain.

Menaikkan timeout 60 detik, pm.max_children, atau penampung 4k hanya menukar 502 dengan gejala lain.
Menaikkan timeout 60 detik, pm.max_children, atau penampung 4k hanya menukar 502 dengan gejala lain.

Menaikkan proxy_read_timeout dari bawaannya 60 detik adalah contoh paling sering disalahgunakan. Perubahan itu memang menghilangkan pesan error, tetapi yang Anda dapat sebagai gantinya adalah halaman yang berputar satu menit lebih lama sebelum akhirnya tampil. Penyebab aslinya, yaitu permintaan yang lambat, sama sekali tidak tersentuh.

Menaikkan pm.max_children melampaui memori yang tersedia menukar 502 dengan kegagalan yang lebih buruk. Pekerja memang bertambah, tetapi ketika semuanya sibuk bersamaan, kernel mulai menghentikan proses secara paksa — termasuk basis data. Pemulihannya jauh lebih lama daripada 502 biasa.

Menaikkan ukuran penampung juga tidak gratis, sebab angka itu berlaku per sambungan. Pada server dengan ribuan sambungan bersamaan, penampung 64k memakan memori yang jauh dari sepele.

Ada pula batas yang tidak bisa Anda lewati. Di hosting bersama, sebagian besar angka ini ditentukan penyedia. Kalau situs Anda rutin menyentuh batasnya, ada dua pilihan yang nyata. Kurangi beban dari sisi aplikasi, atau pindah ke lingkungan dengan kendali penuh seperti VPS Indonesia. Di sana seluruh angka pada artikel ini bisa Anda atur sendiri.

Pertanyaan Seputar 502 Bad Gateway

502 itu kode error apa, dan siapa yang mengeluarkannya?

502 adalah kode status HTTP kelompok 5xx, yang menandai kesalahan di pihak server. Pengirimnya bukan program situs yang Anda tuju, melainkan perantara di depannya — umumnya Nginx, Cloudflare, atau penyeimbang beban. Perantara itu mengeluarkan 502 setelah gagal mendapat jawaban yang sah dari program di belakangnya.

Apakah 502 Bad Gateway berarti website saya diretas atau datanya hilang?

Tidak. Pesan ini menunjukkan kegagalan komunikasi antar dua bagian server, bukan kehilangan atau kebocoran data. Berkas dan basis data Anda tetap di tempatnya. Peretasan memang bisa menyebabkan 502 secara tidak langsung — misalnya lewat beban dari skrip yang disisipkan — tetapi 502 sendiri bukan tanda peretasan.

Kapan 502 Bad Gateway perlu dilaporkan ke penyedia hosting?

Pakai jeda lima menit sebagai pemisah. Pesan yang lahir dari beban sesaat atau penyalaan ulang layanan umumnya lenyap dalam hitungan detik sampai beberapa menit, jadi mencoba lagi sudah cukup. Pesan yang masih bertahan setelah lima menit menandakan layanan mati total atau pengaturan yang salah, dan keadaan itu tidak akan pulih sendiri. Saat melapor, sertakan waktu kejadian lengkap dengan zona waktu serta alamat halaman yang gagal.

Kenapa hanya halaman keranjang atau pencarian yang kena 502?

Halaman yang terbuka normal kemungkinan disajikan dari simpanan, sedangkan keranjang belanja, pencarian, laporan, dan halaman pengaturan wajib diproses program di belakang. Dua jenis halaman itu karena itu menempuh jalur yang berbeda. Penyebabnya biasanya satu permintaan berat yang melampaui batas waktu atau memori, bukan kegagalan seluruh server.

Kenapa kaki halaman error menyebut Nginx padahal hosting saya memakai Apache?

Susunan yang lazim di hosting Indonesia menempatkan Nginx di depan Apache untuk menangani sambungan dan berkas statis. Nginx yang menjawab pengunjung, jadi namanyalah yang tercetak di halaman error. Apache tetap berjalan di belakangnya, dan log yang perlu Anda baca ada di kedua tempat.

Apakah 502 yang berulang bisa membuat halaman hilang dari hasil pencarian?

Bisa, tetapi hanya kalau berlangsung lama. Kejadian pendek tidak berdampak karena perayap mesin pencari akan datang lagi nanti. Yang berbahaya adalah 502 yang bertahan berhari-hari, sebab perayap tidak menemukan isi halaman dan halaman itu bisa hilang sementara dari indeks. Karena itu 502 yang berulang layak diperlakukan sebagai gangguan mendesak.

Kesimpulan

502 Bad Gateway datang dari perantara di sisi situs yang menerima jawaban tidak sah dari server di belakangnya. Perangkat dan jaringan Anda sebagai pengunjung karena itu tidak pernah menjadi penyebabnya. Dua petunjuk menentukan arah perbaikan: kaki halaman error yang menyebutkan siapa yang menjawab, dan satu baris di error log yang menyebutkan apa yang gagal.

Bagi pemilik situs, urutannya selalu sama — pastikan program di belakang hidup, baca log, baru sesuaikan angka pengaturan. Angka yang dinaikkan tanpa membaca log hanya memindahkan gejala ke tempat lain.

Semoga artikel ini membantu.