Apabila laman tiba-tiba memulangkan 502 atau 504, pelawat hanya melihat satu baris ralat. Kedua-duanya hampir selalu berpunca "antara proksi songsang (seperti Nginx) dan aplikasi bahagian belakang". Panduan ini membantu anda mengesannya dengan cepat.

1. 502 berbanding 504

  • 502 Bad Gateway: apabila Nginx memajukan permintaan ke bahagian belakang, bahagian belakang tidak menjawab, telah terhenti, atau tidak boleh dicapai.
  • 504 Gateway Timeout: bahagian belakang menjawab tetapi terlalu perlahan, melebihi had menunggu.

2. Punca paling biasa

  • Bahagian belakang (Node, PHP-FPM, Python dan sebagainya) terhenti atau tidak pernah dimulakan.
  • Port atau alamat proxy_pass Nginx salah, atau bahagian belakang menukar port.
  • Bahagian belakang perlahan (pertanyaan lambat, gelung tak terhingga, API luar tamat masa) → 504.
  • Memori kehabisan dan proses dimatikan oleh OOM killer sistem.

3. Langkah menyelesaikan masalah

  • Adakah bahagian belakang berjalan? Gunakan pm2 list atau systemctl status PERKHIDMATAN untuk mengesahkannya.
  • Semak port: ss -lntp untuk melihat sama ada bahagian belakang mendengar pada port yang dipajukan Nginx.
  • Baca log ralat Nginx: tail -f /var/log/nginx/error.log — ia menyatakan sama ada sambungan ditolak atau tamat masa.
  • Hubungi bahagian belakang secara tempatan: curl http://127.0.0.1:PORT — jika berjaya, masalahnya pada konfigurasi Nginx; jika tidak, bahagian belakang itu sendiri yang rosak.

4. Pembetulan yang sepadan

  • Bahagian belakang terhenti → mulakan semula proses dan periksa lognya untuk punca kegagalan.
  • Port salah → betulkan proxy_pass Nginx, kemudian nginx -t dan reload.
  • Perlahan 504 → optimumkan pertanyaan atau API yang lambat, atau naikkan proxy_read_timeout (penyelesaian sementara).
  • OOM → tambah swap atau naik taraf RAM (lihat artikel "Kehabisan Memori (OOM)" dalam Pusat Bantuan).