Moodle 502/504: Nginx і PHP-FPM
Повідомлення 502 Bad Gateway або 504 Gateway Timeout у Moodle майже ніколи не є «помилкою самої LMS». Це сигнал, що Nginx (або Apache) не отримав відповідь від upstream — найчастіше від PHP-FPM — у відведений час.
Що означають коди
- 502 — upstream недоступний, впав або повернув некоректну відповідь.
- 504 — запит виконувався надто довго (важкий звіт, тест, імпорт, блокування БД).
Швидкий чек-лист
- Журнали Nginx/Apache і PHP-FPM за час інциденту.
- Чи живий пул PHP-FPM, чи всі воркери зайняті.
- Чи не впирається диск (I/O wait) або база даних.
- Чи не збігся важкий cron із піковим входом студентів.
- Чи не вичерпано ліміти `pm.max_children` / таймаути `fastcgi_read_timeout`.
Що не варто робити
Сліпо збільшувати таймаути «до нескінченності» без пошуку причини. Це лише маскує деградацію: користувачі довше чекають, а черга запитів росте.
Для стабільної роботи після інциденту зазвичай потрібні і налаштування стека, і регламент супроводу. Дивіться технічний супровід Moodle та за потреби серверний супровід.