502

Bad Gateway

Официален Кодове на подстатуси
сървърът надолу по веригата връща съобщение за грешка

Спецификация на HTTP код на състоянието 502

Кодът на състоянието 502 Bad Gateway показва, че сървърът, действащ като шлюз или прокси, е получил невалиден отговор от входящ сървър, до който е имал достъп при опит да изпълни заявката.

Източник / Цитат от: Кодът на състоянието 502 Bad Gateway на HTTP е определен в раздел 6.6.3 на RFC7231.

Как да изхвърлим код на състоянието 502 с PHP?

За изхвърляне на HTTP статус код 502 на уеб страница може да се използва функцията http_response_code на PHP. Синтаксисът е следният: http_response_code(502) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Тестване на код 502 на състоянието HTTP

За да можете да показвате кода на състоянието на HTTP (в този случай 502 Bad Gateway) и друга информация от страна на клиента, конзолата за разработка трябва да се отвори с F12. След това преминете към раздела "Мрежа". Сега страницата може да бъде отворена, като уебсайтът (пример index.php) трябва да се вижда в раздела "Мрежа". Той трябва да бъде избран и след това трябва да се избере разделът Herder. След това потребителят ще види следния резултат:

Код на състоянието 502 Bad Gateway
Преглед
URL: https://http-statuscode.com/errorCodeExample.php?code=502
Статус: 502 Bad Gateway
Тези: Network
IP адрес: XX.XX.XX.XX
Код на състоянието 502 Bad Gateway

Как да разреша проблема със статус код 502?

Код на състоянието HTTP 502 Bad Gateway обикновено се връща от прокси сървър, който действа като посредник между клиента (например уеб браузър) и сървъра, с който клиентът иска да комуникира. Грешката възниква, когато прокси сървърът получи невалиден отговор от сървър нагоре по веригата. Съществуват няколко възможни причини за тази грешка и по-долу ще разгледам някои от най-вероятните проблеми и ще обясня как можете да ги отстраните.

  • Претоварен или недостъпен upstream сървър: Често срещана причина за HTTP статус код 502 Bad Gateway е, че upstream сървърът, към който се свързва прокси сървърът, е претоварен или недостъпен. В този случай трябва да се уверите, че сървърът нагоре по веригата функционира правилно и има достатъчно ресурси за обработка на заявките. Проверете логовете на сървъра и мрежовите връзки, за да видите дали има някакви проблеми. Ако сървърът нагоре по веригата е претоварен, може да успеете да разпределите натоварването между няколко сървъра или да добавите допълнителни ресурси, за да отстраните проблема.
  • Мрежови проблеми: Друг възможен проблем са мрежовите проблеми между прокси сървъра и сървъра нагоре по веригата. Това може да бъде нестабилна връзка, проблем с DNS или настройка на защитната стена, която възпрепятства комуникацията. Проверете мрежовите настройки, за да се уверите, че всички необходими портове са отворени и връзката е стабилна. Тествайте също така DNS резолюцията, за да се уверите, че сървърът нагоре по веригата е разрешен правилно. В някои случаи може да е полезно да рестартирате прокси сървъра, за да разрешите мрежовите проблеми.
  • Неправилно конфигуриран прокси сървър: Неправилната конфигурация на прокси сървъра също може да доведе до HTTP код на състоянието 502 Bad Gateway. Уверете се, че настройките на прокси сървъра са правилни и че прокси сървърът препраща правилно заявките към сървъра нагоре по веригата. Проверете конфигурационните файлове и настройките на прокси сървъра, за да се уверите, че те са правилни. В някои случаи може да е полезно и да актуализирате прокси сървъра или да преминете към друга версия, за да отстраните известни проблеми.
  • Безпогрешно приложение на upstream сървъра: Възможно е също така сървърът нагоре по веригата да има дефектно приложение или конфигурация, което да доведе до HTTP код на състоянието 502 Bad Gateway. Проверете логовете на приложението и сървъра, за да потърсите възможни грешки или изключения. Актуализирайте или поправете приложението, за да отстраните известните проблеми. Може да е полезно да работите с разработчик или системен администратор, за да анализирате и разрешите проблема.
  • Проблеми със самия прокси сървър: Накрая, HTTP статус кодът 502 Bad Gateway може да бъде причинен и от проблеми със самия прокси сървър. Това може да се дължи на софтуерни грешки, липсващи актуализации или хардуерни проблеми. Проверете логовете на прокси сървъра за съобщения за грешки или предупреждения. Актуализирайте прокси сървъра до най-новата му версия и проверете за известни проблеми. В някои случаи може да се наложи преинсталиране на прокси сървъра или преминаване към алтернативно софтуерно решение, за да се отстрани проблемът.
    • Важно е да се отбележи, че разрешаването на HTTP код на състоянието 502 Bad Gateway зависи до голяма степен от конкретната ви среда и конфигурация. Може да е полезно да работите с опитен разработчик или системен администратор, за да диагностицирате и отстраните проблема.

      .

Как да създадете собствена страница за грешка с код на състоянието 502

Създаването на собствена страница за грешка 502 Bad Gateway е сравнително лесно както с уеб сървърите "Apache", така и с "NGINX".

Apache Webserver

Уеб сървърът "Apache" е един от най-разпространените уеб сървъри в интернет. За да създадете своя собствена страница за грешка 502 Bad Gateway в "Apache", трябва да се направи следната промяна в следния файл.

File: .htaccess
ErrorDocument 502 /errors/502.html

NGINX Webserver

Подобно на уеб сървъра "Apache", "NGINX" също се използва широко в интернет. За да създадете своя собствена страница за грешка 502 Bad Gateway в "NGINX", трябва да се направи следната промяна в следния файл.

File: sites-enabled/default
error_page 502 /502.html;
location = /502.html {
    root /usr/share/nginx/html;
    internal;
}

Съвместимост на кода на състоянието 502 с браузъра

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Константи в езиците за програмиране

HttpStatusCode.BadGateway
http.StatusBadGateway
Response::HTTP_BAD_GATEWAY
httplib.BAD_GATEWAY
http.client.BAD_GATEWAY
http.HTTPStatus.BAD_GATEWAY
:bad_gateway

Кодове на подсъстоянието на код 502

Кодовете за подсъстояние са чисто технически и никога не трябва да се изпращат на потребителя. Например, ако бъде хвърлен код на състоянието 502.1, той може да бъде регистриран, но код на състоянието 502 ще бъде изпратен на потребителя.:
502.1 CGI application timeout
HTTP IIS, Неофициален
502.2 Bad gateway: Premature Exit
HTTP IIS, Неофициален
502.3 Bad Gateway: Forwarder Connection Error (ARR)
HTP IIS, Неофициален
502.4 Bad Gateway: No Server (ARR)
HTP IIS, Неофициален
502.5 WebSocket failure (ARR)
HTTP IIS, Неофициален
502.6 Forwarded request failure (ARR)
HTTP IIS, Неофициален
502.7 Execute request failure (ARR)
HTTP IIS, Неофициален
Автор: Tony Brüser
Автор: Tony Brüser

Тони Брусер е ентусиазиран уеб разработчик със склонност към HTTP кодовете за състояние.

LinkedInGitHub