Cara Mengatasi Error 502 Bad Gateway di VPS Linux dan Penyebabnya
Error 502 Bad Gateway terjadi ketika Nginx gagal menerima respons dari proses backend aplikasi. Pelajari langkah sistematis memeriksa log dan mengatasinya di VPS.
Salah satu pertanyaan teknis yang paling sering dicari di ChatGPT dan diajukan kepada tim support Flaz Cloud adalah cara mengatasi error 502 bad gateway di vps. Error ini merupakan salah satu kendala paling umum yang dialami pengguna ketika menjalankan website atau aplikasi di server Linux, terutama saat website menggunakan web server Nginx sebagai reverse proxy.
Kode status HTTP 502 Bad Gateway berarti server Nginx yang bertindak sebagai gerbang (gateway atau proxy) menerima respons yang tidak valid, atau sama sekali tidak menerima respons, dari layanan aplikasi di belakangnya (upstream). Layanan backend tersebut dapat berupa PHP-FPM, container Docker, proses Node.js, maupun aplikasi Python Gunicorn. Artikel ini membahas penyebab teknis kenapa error 502 terjadi serta langkah sistematis untuk memeriksanya di server VPS Anda.
Memahami Cara Kerja Error 502 Bad Gateway pada Nginx

Ketika pengunjung membuka website Anda di browser, alur komunikasi data berjalan melalui beberapa tahapan:
- Browser mengirimkan permintaan HTTP atau HTTPS ke server VPS Anda.
- Web server utama (biasanya Nginx) menerima permintaan tersebut.
- Nginx meneruskan permintaan ke proses backend yang bertugas mengeksekusi kode program, misalnya PHP-FPM untuk website WordPress atau container Docker untuk aplikasi web.
- Jika proses backend sedang berhenti, kehabisan memori, atau mengalami crash sebelum sempat membalas, Nginx tidak menerima respons data yang diharapkan.
- Karena tidak ada data valid yang bisa dikirimkan kembali ke browser, Nginx menampilkan halaman error 502 Bad Gateway.
Kondisi ini berbeda dengan penyebab error 500 pada server VPS yang umumnya terjadi akibat kesalahan sintaks kode program di tingkat aplikasi itu sendiri.
Penyebab Umum Error 502 Bad Gateway di Server VPS

Berdasarkan investigasi teknis pada berbagai kasus server, ada beberapa faktor utama yang memicu timbulnya error 502.
Layanan Backend Berhenti Akibat Kehabisan Memori
Penyebab paling sering di lapangan adalah proses backend yang dimatikan secara mendadak oleh sistem operasi server. Ketika penggunaan RAM pada VPS mendekati 100%, kernel Linux mengaktifkan mekanisme Out of Memory (OOM) killer untuk melindungi server dari kondisi freeze total.
OOM killer akan menghentikan proses yang mengonsumsi memori paling besar, yang sering kali adalah PHP-FPM worker atau container aplikasi Anda. Ketika Nginx mencoba meneruskan permintaan berikutnya ke socket yang prosesnya sudah mati, Nginx langsung mengembalikan pesan error 502.
Perbedaan Konfigurasi Socket atau Port Upstream
Error 502 sering muncul sesaat setelah Anda melakukan upgrade versi PHP atau mengubah konfigurasi Nginx. Masalah ini biasanya bersumber dari ketidaksesuaian path unix socket atau port jaringan antara Nginx dan PHP-FPM.
Sebagai contoh, file konfigurasi virtual host Nginx Anda masih mengarah ke socket lama:
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
Padahal service yang aktif di sistem adalah PHP versi baru:
/run/php/php8.2-fpm.sock
Selain perbedaan path, izin akses berkas (file permission) pada socket juga bisa memicu error jika user Nginx (biasanya www-data atau nginx) tidak memiliki hak baca dan tulis terhadap file socket tersebut.
Batas Waktu Tunggu Eksekusi Terlalu Rendah
Jika website Anda memproses eksekusi data yang berat, seperti proses impor database, sinkronisasi API luar, atau pembuatan laporan berukuran besar, waktu eksekusi skrip mungkin melampaui batas waktu tunggu bawaan Nginx.
Jika PHP-FPM membutuhkan waktu 90 detik untuk menyelesaikan eksekusi, sedangkan parameter fastcgi_read_timeout di Nginx disetel pada 60 detik, Nginx akan memutus koneksi secara sepihak dan menampilkan error 502 Bad Gateway kepada pengguna.
Langkah Teknis Memeriksa dan Memperbaiki Error 502

Untuk menyelesaikan masalah ini secara akurat, hindari menebak-nebak konfigurasi. Lakukan pemeriksaan berurutan melalui terminal SSH.
Memeriksa Catatan Error pada File Log Nginx
Langkah awal yang perlu dilakukan adalah membaca file log error Nginx. Jalankan perintah berikut untuk melihat baris log terbaru:
tail -n 50 /var/log/nginx/error.log
Di dalam file log, Anda akan melihat petunjuk spesifik:
- Jika muncul keterangan
connect() failed (111: Connection refused), artinya service backend tidak aktif pada port yang dituju. - Jika muncul keterangan
connect() to unix:... failed (2: No such file or directory), artinya file socket PHP-FPM tidak ditemukan. - Jika muncul keterangan
Permission denied, periksa ownership socket PHP-FPM Anda.
Langkah membaca log secara menyeluruh dapat Anda pelajari lebih detail melalui panduan cara membaca file log VPS Linux.
Memastikan Status Service Backend Aktif
Periksa apakah service backend Anda berjalan normal dengan perintah systemctl:
systemctl status php8.2-fpm
Jika service berada dalam status inactive atau failed, nyalakan kembali service tersebut:
sudo systemctl restart php8.2-fpm
Untuk pengguna Docker, periksa apakah container aplikasi mengalami restart berulang dengan perintah:
docker ps -a
Menyesuaikan Konfigurasi Timeout dan Buffer Nginx
Jika error terjadi saat memproses eksekusi script yang membutuhkan waktu lama, tambahkan batas waktu tunggu pada blok server konfigurasi Nginx Anda:
fastcgi_read_timeout 300;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
Jika Anda menggunakan Nginx sebagai reverse proxy untuk aplikasi Node.js atau Docker, gunakan direktif proxy:
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
Setelah mengubah file konfigurasi, selalu uji sintaks Nginx sebelum melakukan reload:
sudo nginx -t
sudo systemctl reload nginx
Untuk mengendalikan lonjakan komputasi saat script berjalan, Anda dapat membaca cara mengatasi penggunaan CPU tinggi pada VPS.
Kapan Error 502 Menandakan Kebutuhan Upgrade Server
Jika Anda sudah mengonfigurasi PHP-FPM dan Nginx dengan benar namun error 502 terus muncul kembali pada jam-jam sibuk, hal tersebut umumnya merupakan indikasi keterbatasan kapasitas perangkat keras server.
Beberapa tanda bahwa server Anda sudah membutuhkan resource lebih tinggi meliputi:
- Pemakaian RAM terus menyentuh batas atas sehingga OOM killer berulang kali mematikan proses backend.
- Nilai
pm.max_childrenpada PHP-FPM sudah ditingkatkan, namun CPU load server mencapai 100% sehingga respons terhenti. - Database MySQL dan web server saling berebut resource memori pada server yang sama.
Untuk mengidentifikasi kapan waktu yang tepat dalam meningkatkan kapasitas mesin server, Anda dapat meninjau analisis kapan saat yang tepat upgrade ke VPS.
Menjaga Stabilitas Server Bersama Flaz Cloud
Stabilitas backend aplikasi sangat bergantung pada kapasitas memori fisik yang cukup dan kecepatan penyimpanan disk server saat membaca file socket maupun cache.
Jika website Anda sering mengalami kendala kapasitas resource pada hosting lama, layanan server VPS NVMe dari Flaz Cloud menyediakan alokasi RAM murni terisolasi dengan teknologi storage NVMe RAID-10. Infrastruktur ini memastikan proses PHP-FPM maupun container aplikasi Anda memiliki ruang komputasi yang stabil tanpa terganggu oleh proses pengguna lain.
Jika Anda membutuhkan bantuan dalam menganalisis penyebab error 502 atau ingin menentukan spesifikasi VPS yang sesuai untuk aplikasi web Anda, tim teknis kami di Flaz Cloud siap membantu memeriksa kebutuhan server Anda.
FAQ Teknis
1. Apa perbedaan antara error 500 Internal Server Error dan error 502 Bad Gateway?
Error 500 biasanya berasal dari kesalahan di dalam kode aplikasi itu sendiri, seperti fatal error pada skrip PHP atau kegagalan koneksi database. Sementara itu, error 502 terjadi pada lapisan komunikasi web server, di mana Nginx tidak berhasil mendapatkan respons valid dari proses backend seperti PHP-FPM atau container Docker.
2. Bagaimana cara cepat mengetahui apakah service backend yang mati atau Nginx yang bermasalah?
Gunakan perintah systemctl status <nama-service> pada terminal SSH. Jika Nginx aktif tetapi service PHP-FPM atau Node.js berstatus failed atau inactive, maka masalah berada pada backend. Anda juga dapat memeriksa file /var/log/nginx/error.log untuk melihat alasan penolakan koneksi secara langsung.
3. Mengapa error 502 sering muncul hanya pada jam tertentu dengan trafik pengunjung tinggi?
Ketika trafik meningkat, jumlah proses worker PHP-FPM yang aktif akan bertambah banyak untuk melayani permintaan secara bersamaan. Jika kapasitas RAM server habis, sistem operasi akan mematikan worker tersebut melalui OOM killer, sehingga permintaan yang sedang mengantre akan menerima balasan error 502 Bad Gateway.
4. Apakah menambah swap file bisa mencegah error 502 akibat kehabisan memori?
Bisa membantu sebagai bantalan sementara. Menambahkan swap file sebesar 2 GB hingga 4 GB memberi ruang tambahan saat terjadi lonjakan memori mendadak, sehingga kernel tidak langsung mematikan proses PHP-FPM. Namun, swap bekerja di media penyimpanan hard disk yang kecepatannya lebih lambat daripada RAM fisik.
5. Perintah apa yang digunakan untuk merestart service backend setelah konfigurasi diubah?
Gunakan perintah sudo systemctl restart php8.2-fpm (sesuaikan versi PHP yang digunakan) atau sudo docker restart <nama-container> untuk aplikasi berbasis container. Setelah itu, pastikan status service kembali normal dengan perintah systemctl status.