Помилка "502 Bad Gateway" - що це таке? Причини появи і способи усунення
Кожен користувач Інтернету бачив у своєму браузері повідомлення «502: Bad Gateway», що означає поява на стороні веб-сервера помилки в процесі обробки запиту. Найчастіше причини збоїв пов`язані з неправильною настройкою веб-сервера або обладнання хостинг-компанії. Стандартної проблемою є неправильна обробка DNS або проксі-сервера.
Що значить "502: Bad Gateway"
Помилка означає, що запит до веб-сервера з боку браузера надійшов, але був неправильно оброблений або видалений із загальної черги. Якщо сервер програмно розташовується за шлюзом, то ймовірна проблема саме в шлюзі або в роботі самого веб-сервера, який і передає на шлюз інформацію про помилку, а вона потім відображається в браузері користувача.
Причини виникнення помилки 502. Недолік ресурсів сервера
Найголовнішою проблемою появи цієї помилки є недостатній рівень серверних ресурсів для обробки вхідних запитів, через що сервер починає генерувати помилку 502. Брак ресурсів може бути як апаратної (нестача оперативної пам`яті, недостатня швидкість процесора або диска), так і програмної, пов`язаної з неправильної налаштуванням сервера або використовуваного програмного забезпечення.
Але буває ситуація, коли при достатньому рівні ресурсів сервер продовжує періодично генерувати помилку 502: Bad Gateway. Що це може бути, якщо не апаратні збої?
Обмеження ресурсів може бути введено автоматично при виході виділеного сервера VPS або віртуального хостингу за межі тарифного плану. В результаті сервер може не впоратися з поточною навантаженням.
Веб-сервери, такі як Apache, мають строго певну кількість обробників запитів, які задаються при його конфігурації. Якщо всі вони одночасно зайняті, що надійшов запит поміщається в чергу, і час її не може перевищувати хвилину для кожного з них. У разі перевищення часу очікування обробка запиту скасовується, і користувачеві видається помилка 502. Додатково оброблювачу може просто не вистачити поточних вільних ресурсів для нормальної обробки черги.
У разі використання на сервері програмної зв`язки PHP + FastCGI, при неоптимізованих кількості php-cgi процесів майже завжди виникають перевантаження і брак ресурсів.
Найбільш поширені причини виникнення браку ресурсів для обробки запитів
- Сервер не справляється з поточним кількістю одночасних відвідувачів сайту. Також значну частину ресурсів можуть витрачати різні пошукові роботи і неправильні програмні скрипти.
- Перевантаження сервера при проведенні хакерських DDos-атак, коли сервер доводиться до відмови великою кількістю одночасних запитів для обробки.
- Буває ситуація, коли при використанні послуги віртуального хостингу несподівано виникає помилка 502: Bad Gateway. Що це означає? Це може свідчити про наявність проблеми на стороні хостингу, відомої під назвою оверселлінг, т. Е. Розміщення хостером на одному сервері такої кількості клієнтських акаунтів, що в моменти пікового навантаження їм не вистачає поточних апаратних ресурсів.
- Некоректне конфігурування власне сервера або відсутність програмної або апаратної сумісності.
- Використання на сайті підключаються зовнішніх ресурсів, таких як лічильники відвідувань, різних інформерів, скриптів. Помилка може виникнути при проблемах з такими зовнішніми джерелами.
- Завантаження файлів великого розміру на сервер при поганій якості Інтернет-з`єднання.
Помилки скриптів PHP
Помилка 502 може виникати через скриптів, плагінів або розширень на мові PHP, які при завершенні виконання не передають сервера відповідний код. Наприклад, генерувати помилку 502: Bad Gateway nginx як один з варіантів проксі-сервера може через неправильне визначення стану скрипта і воспринятия обриву з`єднання зі службами веб-сервера як системний збій.
Отже, вся статична інформація (малюнки, сторінки сайту, файли Robots) завантажується нормально і без помилок. Що значить "502: Bad Gateway" в цьому випадку? Що збій виникає саме при завантаженні програмних скриптів, плагінів і розширень.
Заходи щодо усунення помилки 502
У першу чергу необхідно провести аналіз поточної серверної навантаження, особливо в моменти появи помилки. Особливу увагу слід звернути на завантаження оперативної пам`яті і при необхідності збільшити її розмір для поліпшення процесу обробки запитів.
Перевірте правильність настройки лімітів на кількість одночасно оброблюваних php-cgi процесів. Їх неправильна конфігурація призводить до швидкої перевантаженні сервісу і постійного виникнення повідомлення "502: Bad Gateway". Що це таке і як правильно налаштувати ліміти процесів, дізнайтеся в службі підтримки хостинг-провайдера.
Максимально скоротіть запити до зовнішніх мережевих ресурсів і встановіть граничний час їх завантаження та відповіді. Це дозволить побачити, на що йдуть ресурси сервера, і допоможе позбутися від зовнішньої «пробуксовки» сайту.
У разі підозри на оверселлінг або неправильну настройку серверної конфігурації зверніться в службу підтримки хостера. Якщо не буде реакції, і проблема не буде усунена, змініть хостинг-провайдера. Недоступність сервера може призвести до збитків через простій помилки 502: Bad Gateway. Що це означає для бізнесу, думаю, не варто пояснювати.