Ви відкриваєте сайт і замість головної сторінки бачите коротке повідомлення: 502 Bad Gateway. Іноді достатньо оновити вкладку, але в інших випадках помилка не зникає годинами, не працює адмінпанель, а клієнти не можуть оформити замовлення.
Код 502 не вказує на одну конкретну несправність. Він означає, що сервер-посередник не отримав коректної відповіді від іншого сервера або процесу, який мав обробити запит.
Коротка відповідь
502 Bad Gateway виникає, коли nginx, CDN, балансувальник або інший шлюз звертається до внутрішнього сервісу, але отримує неправильну відповідь або не отримує її взагалі.
Найпоширеніші причини:
- зупинився PHP-FPM;
- сервер перевантажений;
- завершився ліміт оперативної пам’яті;
- внутрішній сервіс відповідає надто довго;
- помилка в конфігурації nginx або Apache;
- CDN не може підключитися до основного сервера;
- плагін, модуль або скрипт викликає критичний збій.
Що насправді означає 502 Bad Gateway
У сучасній серверній інфраструктурі запит користувача часто проходить через кілька рівнів.
Спрощена схема може виглядати так:
- браузер користувача звертається до сайту;
- запит приймає CDN або nginx;
- nginx передає його PHP-FPM, Apache чи застосунку;
- застосунок формує сторінку;
- готова відповідь повертається користувачеві.
Якщо один із внутрішніх компонентів не відповів або повернув некоректні дані, зовнішній сервер показує код 502.
Важливо: 502 — це не завжди проблема хостинг-провайдера. Причиною може бути код сайту, конфігурація сервера, перевантаження або зовнішній сервіс.
Як визначити масштаб проблеми
Перед зміною налаштувань потрібно зрозуміти, де саме виникла помилка.
| Ситуація | Ймовірна причина |
|---|---|
| Помилка з’явилась лише один раз | Короткочасне перевантаження або перезапуск сервісу |
| Сайт не працює у всіх користувачів | Проблема сервера, PHP-FPM, nginx або застосунку |
| Помилку бачить лише один користувач | Кеш браузера, DNS, провайдер або локальна мережа |
| Не відкривається лише одна сторінка | Проблемний скрипт, модуль або запит до бази даних |
| 502 виникає лише під навантаженням | Нестача CPU, RAM або робочих процесів |
| Помилка з’явилась після оновлення | Конфлікт плагіна, теми, модуля чи версії PHP |
| Сайт працює без CDN, але не працює через нього | CDN не може підключитися до основного сервера |
9 основних причин помилки 502
1. Зупинився або завис PHP-FPM
PHP-FPM обробляє PHP-код WordPress, OpenCart, Laravel та інших систем. Якщо процес зупинився, nginx не може отримати готову відповідь і повертає 502.
Причиною можуть бути:
- нестача оперативної пам’яті;
- критична помилка PHP;
- неправильна конфігурація пулу;
- занадто велика кількість одночасних запитів;
- аварійне завершення процесу.
2. Серверу не вистачає RAM
Коли оперативна пам’ять закінчується, операційна система може примусово завершувати найбільш ресурсомісткі процеси. Часто під удар потрапляють PHP-FPM, MySQL або вебсервер.
На VPS потрібно перевірити використання пам’яті та системні журнали. На shared-хостингу — статистику ресурсів у панелі керування.
3. Перевищено CPU-ліміти
На звичайному хостингу ресурси акаунта обмежені. Якщо сайт довго використовує максимум процесора, частина запитів може не оброблятися вчасно.
Це особливо характерно для:
- WooCommerce та OpenCart;
- масового імпорту товарів;
- створення резервних копій;
- роботи пошукових ботів;
- неоптимізованих фільтрів;
- заражених сайтів.
4. Вичерпано кількість PHP-процесів
Навіть якщо CPU та RAM ще доступні, сервер може мати обмеження на кількість одночасних процесів. Нові запити стають у чергу або завершуються помилкою.
У такій ситуації потрібно або зменшити час виконання запитів, або збільшити кількість робочих процесів відповідно до доступної пам’яті.
5. Повільний запит до бази даних
Сторінка може зависати під час виконання складного SQL-запиту. Зовнішній сервер не дочікується завершення операції та повертає помилку.
Типові джерела проблеми:
- велика таблиця без потрібного індексу;
- важкий фільтр товарів;
- пошук у великому каталозі;
- пошкоджена таблиця;
- надмірна кількість активних запитів.
6. Помилка у конфігурації nginx або Apache
Неправильна адреса upstream-сервера, порт або шлях до PHP-сокета також можуть викликати 502.
Наприклад, nginx очікує PHP-FPM через один сокет, а після оновлення PHP сервіс працює через інший.
7. CDN не бачить основний сервер
Якщо між користувачем і хостингом працює CDN або reverse proxy, код 502 може відображатися навіть тоді, коли сам CDN доступний.
Причини:
- основний сервер тимчасово недоступний;
- IP-адреса CDN заблокована фаєрволом;
- неправильно вказана IP-адреса домену;
- сервер закриває з’єднання;
- виникла мережева проблема між вузлами.
8. Конфлікт після оновлення сайту
Оновлення плагіна, теми, модуля або PHP може активувати несумісний код. Якщо помилка виникла відразу після змін, їх потрібно перевіряти першими.
9. Зовнішній API не відповідає
Сайт може чекати відповідь від CRM, платіжної системи, служби доставки або іншого сервісу. Якщо зовнішній запит виконується синхронно й не має правильного тайм-ауту, вся сторінка може зависнути.
Що може зробити звичайний користувач
Якщо ви не адміністратор сайту, доступні лише базові перевірки:
- оновіть сторінку через кілька хвилин;
- відкрийте сайт в іншому браузері;
- перевірте його через мобільний інтернет;
- очистіть кеш браузера;
- перевірте, чи працюють інші сторінки;
- повідомте власника або службу підтримки.
Якщо сайт не працює з різних пристроїв і мереж, проблема майже напевно знаходиться на стороні сервера або застосунку.
Покрокова діагностика для власника сайту
Крок 1. Перевірте статус хостингу
Дізнайтеся, чи немає планових робіт або загальної аварії. Якщо не працюють усі сайти на сервері, самостійна зміна коду не допоможе.
Крок 2. Перевірте ресурси
Зверніть увагу на:
- CPU;
- RAM;
- I/O;
- кількість процесів;
- вільний дисковий простір.
Заповнений диск також може порушити роботу бази даних, логів та тимчасових файлів.
Крок 3. Перегляньте журнали помилок
Найбільш корисними є:
- error log nginx;
- error log Apache;
- журнал PHP-FPM;
- PHP error log;
- системний журнал;
- slow query log бази даних.
Шукайте записи, створені безпосередньо перед появою 502.
Крок 4. Перезапустіть проблемний сервіс
Якщо є доступ до VPS, можна перезапустити PHP-FPM, nginx або інший завислий компонент. Але перезапуск усуває лише симптом.
Якщо помилка повертається, потрібно встановити її справжню причину.
Крок 5. Відкотіть останні зміни
Якщо збій почався після оновлення або встановлення модуля:
- вимкніть проблемний компонент;
- поверніть попередню версію;
- відновіть конфігурацію;
- перевірте сумісність із PHP.
Крок 6. Тимчасово обійдіть CDN
Перевірте основний сервер без проксіювання. Якщо сайт напряму працює, а через CDN повертає 502, потрібно перевіряти DNS, фаєрвол і доступність origin-сервера.
Крок 7. Перевірте базу даних
Зверніть увагу на завислі запити, блокування таблиць, кількість активних з’єднань і повільні операції.
Окрема перевірка для WordPress
У WordPress помилку часто викликає плагін або тема.
Послідовність перевірки:
- перейменуйте каталог останнього встановленого плагіна;
- якщо не допомогло — тимчасово вимкніть усі плагіни;
- перевірте стандартну тему;
- перегляньте PHP error log;
- перевірте ліміт пам’яті;
- очистіть object cache.
Не варто бездумно збільшувати всі ліміти. Спочатку потрібно знайти компонент, який створює надмірне навантаження.
Окрема перевірка для OpenCart
В OpenCart особливу увагу варто звернути на:
- модифікатори OCMOD;
- кеш системи;
- модулі фільтрації;
- імпорт товарів;
- синхронізацію з CRM або складом;
- журнал помилок PHP;
- повільні SQL-запити.
Якщо 502 з’являється під час імпорту, проблему краще вирішувати через фонову обробку, поділ файлу на частини або оптимізацію самого скрипта.
Чому просте збільшення тайм-ауту не завжди допомагає
Збільшення тайм-ауту може приховати проблему, але не усунути її.
Якщо запит виконується 60 секунд через неоптимізовану базу даних, встановлення тайм-ауту 120 секунд лише змусить сервер довше чекати. При одночасному надходженні багатьох таких запитів ресурси завершаться ще швидше.
Спочатку потрібно оптимізувати операцію, а вже потім коригувати ліміти.
Коли потрібен перехід на VPS
VPS варто розглядати, якщо:
- ресурси shared-хостингу регулярно завершуються;
- сайт має прогнозовані піки трафіку;
- потрібна власна конфігурація PHP-FPM;
- необхідно керувати кількістю процесів;
- використовується великий каталог товарів;
- потрібен постійний моніторинг сервера.
Але слабко налаштований VPS може працювати гірше за якісний shared-хостинг. Перехід має супроводжуватися правильною конфігурацією та адмініструванням.
Коли проблема не потребує зміни хостингу
Не поспішайте переїжджати, якщо 502 спричинена:
- одним несправним плагіном;
- помилкою після оновлення;
- неправильною адресою PHP-сокета;
- одноразовим збоєм зовнішнього API;
- помилкою у правилах CDN;
- невдалим імпортом.
У цих випадках зміна провайдера може не дати жодного результату.
Як запобігти повторній появі 502
- контролювати CPU, RAM і дисковий простір;
- налаштувати сповіщення про перевищення ресурсів;
- аналізувати повільні запити;
- регулярно перевіряти журнали помилок;
- тестувати оновлення на staging-копії;
- обмежувати час очікування зовнішніх API;
- використовувати серверне кешування;
- проводити навантажувальне тестування перед рекламою.
Практичний чек-лист
- Перевірено, чи доступний сайт з інших мереж.
- Виключено загальну аварію хостингу.
- Переглянуто використання CPU і RAM.
- Перевірено вільний дисковий простір.
- Відкрито журнали nginx, PHP-FPM і PHP.
- Перевірено останні оновлення.
- Протестовано роботу без CDN.
- Перевірено базу даних і зовнішні API.
- Встановлено першопричину, а не лише перезапущено сервер.
FAQ
Чи може 502 зникнути самостійно?
Так, якщо причиною було короткочасне перевантаження або перезапуск сервісу. Але регулярне повторення помилки потребує діагностики.
Чим 502 відрізняється від 504?
502 означає, що шлюз отримав некоректну відповідь або не зміг нормально підключитися до внутрішнього сервісу. 504 зазвичай означає, що відповідь не надійшла протягом установленого часу.
Чи допоможе очищення кешу?
Іноді — якщо проблема пов’язана із застарілим кешем або некоректним object cache. Але при зупиненому PHP-FPM очищення браузера не допоможе.
Чи впливає 502 на SEO?
Короткочасний збій зазвичай не має серйозних наслідків. Якщо сайт регулярно або довго повертає 502, пошукові роботи не можуть нормально сканувати сторінки, а користувачі залишають сайт.
Чи потрібно відновлювати сайт із резервної копії?
Лише якщо помилка спричинена пошкодженням файлів, невдалим оновленням або зміною коду. При нестачі серверних ресурсів відновлення копії не вирішить проблему.
Що читати далі
Якщо 502 виникає через тривалу відповідь сервера, спочатку прочитайте матеріал про те, чому сервер відповідає повільно. Для глибшої перевірки швидкості використовуйте інструкцію, як зменшити TTFB.
Власникам інтернет-магазинів також варто перевірити вимоги до хостингу для OpenCart або хостингу для WooCommerce. Якщо поточний сервер регулярно не витримує навантаження, дізнайтеся, як перенести сайт на інший хостинг без втрат.
Висновок
Помилка 502 Bad Gateway означає порушення зв’язку між серверними компонентами. Вона може виникнути через PHP-FPM, нестачу ресурсів, повільну базу даних, неправильну конфігурацію, CDN або проблемний модуль.
Правильний порядок дій — визначити масштаб збою, перевірити ресурси, відкрити журнали, проаналізувати останні зміни та знайти конкретний компонент, який не відповідає.
Перезапуск сервера може швидко повернути сайт до роботи, але стабільний результат дає лише усунення першопричини. Якщо 502 повторюється під навантаженням, це вже сигнал для оптимізації коду, перегляду лімітів або масштабування серверної інфраструктури.