Обидві помилки показує проксі-сервер (зазвичай Nginx), коли не може отримати відповідь від програми, яка насправді формує сторінку: PHP-FPM, Apache, Node.js чи іншого бекенду.
- 502 Bad Gateway — бекенд відповів некоректно або взагалі недоступний: процес не запущений, впав чи відхилив з'єднання.
- 504 Gateway Timeout — бекенд працює, але не встиг відповісти за відведений час.
502 Bad Gateway
1. Перевірте, чи запущений PHP-FPM
На VPS:
systemctl status php8.3-fpm
Підставте свою версію PHP. Якщо служба зупинена — запустіть її і подивіться, чому вона впала:
systemctl restart php8.3-fpm
journalctl -u php8.3-fpm --since "1 hour ago"
2. Перевірте журнал Nginx
tail -n 50 /var/log/nginx/error.log
connect() to unix:/run/php/php8.3-fpm.sock failed (2: No such file or directory)— у конфігурації Nginx вказаний сокет іншої версії PHP. Виправте шлях уfastcgi_pass.(13: Permission denied)— Nginx не має прав на сокет. Перевірте параметриlisten.ownerіlisten.groupу пулі PHP-FPM.upstream sent too big header— збільште буфери:fastcgi_buffers 16 16k; fastcgi_buffer_size 32k;
3. Не вистачає пам'яті
Якщо на сервері закінчилася оперативна пам'ять, ядро завершує процеси PHP або бази даних. Перевірте:
free -h
dmesg | grep -i "killed process"
Допоможе додавання swap або збільшення тарифу — див. «Як додати swap-файл на VPS» і «Як перевірити навантаження на VPS».
504 Gateway Timeout
Сторінка виконується довше, ніж дозволяють тайм-аути. Спочатку з'ясуйте, чому вона повільна: важкий SQL-запит, звернення до зовнішнього API, імпорт товарів, резервне копіювання плагіном.
Якщо довге виконання очікуване (наприклад, імпорт), збільште тайм-аути. У Nginx:
fastcgi_read_timeout 300;
proxy_read_timeout 300;
У PHP — параметр max_execution_time, у пулі PHP-FPM — request_terminate_timeout. Після змін перезавантажте служби:
nginx -t && systemctl reload nginx
systemctl reload php8.3-fpm
Довгі операції краще виконувати не через браузер, а через CRON або командний рядок — тоді вони не впираються в тайм-аути вебсервера.
На віртуальному хостингу
На хостингу з ISPmanager чи cPanel доступу до конфігурації Nginx немає. Перевірте журнал помилок сайту, вимкніть нещодавно встановлені плагіни та спробуйте іншу версію PHP. Якщо помилка повторюється — напишіть у підтримку.