Kesalahan batas waktu gateway 504 terjadi ketika Nginx tidak dapat menerima respons dari layanan cukup lama. Misalnya dari PHP-FPM.
Nginx dan PHP-FPM
Penyebab paling umum dari kesalahan ini adalah kolaborasi Nginx dan PHP-FPM. Jika ada skrip PHP yang sangat lambat, Nginx akan memberikan batas waktu 504 gateway ketika tidak menunggu jawaban selama 30 detik (secara default).
Untuk menghilangkan kesalahan ini, coba naikkan batas waktu:
location ~ \.php$ { fastcgi_pass unix:/tmp/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; }
Proksi
504 gateway time-out juga dapat terjadi ketika Nginx digunakan sebagai server proxy. Misalnya, ketika bekerja dengan Apache. Untuk menghindari masalah, Anda perlu mengonfigurasi pengaturan batas waktu untuk proxy:
server { ... proxy_connect_timeout 600; proxy_send_timeout 600; proxy_read_timeout 600; send_timeout 600; ... }
Jangan lupa untuk me-restart Nginx setelah mengubah pengaturan:
# nginx -s reload
Penting untuk dipahami bahwa sangat disarankan untuk menyingkirkan skrip yang lambat. Solusi dengan pengaturan batas waktu dapat berhenti bekerja saat beban meningkat.