502

Bad Gateway

Oficialus Substatuto kodai
tolesnis serveris grąžino klaidos pranešimą

HTTP būsenos kodo 502 specifikacija

502 Bad Gateway būsenos kodas rodo, kad serveris, veikdamas kaip vartai arba tarpinis serveris, gavo neteisingą atsakymą iš įeinančio serverio, prie kurio prisijungė bandydamas įvykdyti užklausą.

Šaltinis / citata iš: HTTP būsenos kodas 502 Bad Gateway nurodytas 6.6.3 skirsnyje 6.6.3.

Kaip naudojant PHP išmesti 502 būsenos kodą?

Norint žiniatinklio puslapyje nurodyti HTTP būsenos kodą 502, galima naudoti PHP funkciją http_response_code. Sintaksė tokia: http_response_code(502) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

HTTP būsenos kodo 502 testavimas

Kad kliento pusėje būtų galima rodyti HTTP būsenos kodą (šiuo atveju 502 Bad Gateway) ir kitą informaciją, kūrimo konsolę reikia atidaryti klavišu F12. Tada pereikite prie skirtuko "Network" (tinklas). Dabar galima atidaryti puslapį, tinklo skirtuke turi būti matoma svetainė (pavyzdys index.php). Ją reikia pasirinkti, o tada reikia pasirinkti skyrių Herder (Herderis). Tada naudotojas matys tokį rezultatą:

Būsenos kodas 502 Bad Gateway
Apžvalga
URL: https://http-statuscode.com/errorCodeExample.php?code=502
Statusas: 502 Bad Gateway
Šie: Network
IP adresas: XX.XX.XX.XX
Būsenos kodas 502 Bad Gateway

Kaip išspręsti 502 būsenos kodo problemą?

HTP būsenos kodą 502 Bad Gateway paprastai grąžina tarpinis serveris, kuris veikia kaip tarpininkas tarp kliento (pvz., žiniatinklio naršyklės) ir serverio, su kuriuo klientas nori bendrauti. Klaida atsiranda, kai tarpinis serveris gauna neteisingą atsakymą iš aukštesnio lygio serverio. Galimos kelios šios klaidos priežastys, toliau aptarsiu keletą labiausiai tikėtinų problemų ir paaiškinsiu, kaip jas išspręsti.

  • Perkrautas arba nepasiekiamas aukštesnio lygmens serveris: Dažna HTTP būsenos kodo 502 Bad Gateway priežastis yra ta, kad aukštesnio lygmens serveris, prie kurio jungiasi tarpinis serveris, yra perkrautas arba nepasiekiamas. Tokiu atveju turėtumėte įsitikinti, kad aukštesnio lygmens serveris veikia tinkamai ir turi pakankamai išteklių užklausoms apdoroti. Patikrinkite serverio žurnalus ir tinklo ryšius, kad sužinotumėte, ar nėra kokių nors problemų. Jei aukštesnio lygmens serveris yra perkrautas, galbūt galėsite paskirstyti apkrovą keliems serveriams arba pridėti papildomų išteklių, kad išspręstumėte problemą.
  • Tinklo problemos: Kita galima problema - tinklo problemos tarp tarp tarpinio serverio ir aukštesnio lygmens serverio. Tai gali būti nestabilus ryšys, DNS problema arba ugniasienės nustatymas, trukdantis ryšiui. Patikrinkite tinklo nustatymus ir įsitikinkite, kad visi reikalingi prievadai yra atidaryti ir ryšys yra stabilus. Taip pat patikrinkite DNS skiriamąją gebą, kad įsitikintumėte, jog pirminis serveris yra skiriamas tinkamai. Kai kuriais atvejais taip pat gali būti naudinga iš naujo paleisti tarpinį serverį, kad būtų išspręstos tinklo problemos.
  • Neteisingai sukonfigūruotas tarpinis serveris: Neteisingai sukonfigūruotas tarpinis serveris taip pat gali sukelti HTTP būsenos kodą 502 Bad Gateway. Įsitikinkite, kad tarpinio serverio nustatymai yra teisingi ir kad tarpinis serveris tinkamai persiunčia užklausas į aukštesnio lygmens serverį. Patikrinkite tarpinio serverio konfigūracijos failus ir nustatymus, kad įsitikintumėte, jog jie yra teisingi. Kai kuriais atvejais taip pat gali būti naudinga atnaujinti tarpinį serverį arba pereiti prie kitos versijos, kad būtų išspręstos žinomos problemos.
  • Klaidinga paraiška aukštesnės pakopos serveryje: Taip pat gali būti, kad pradiniame serveryje yra ydinga programa arba konfigūracija, dėl kurios gaunamas HTTP būsenos kodas 502 Bad Gateway. Patikrinkite programos ir serverio žurnalus ir ieškokite galimų klaidų ar išimčių. Atnaujinkite arba pataisykite programą, kad išspręstumėte žinomas problemas. Taip pat gali būti naudinga bendradarbiauti su kūrėju arba sistemos administratoriumi, kad problema būtų išanalizuota ir išspręsta.
  • Problemos su pačiu tarpinio serverio serveriu: Galiausiai, HTTP būsenos kodą 502 Bad Gateway gali sukelti ir paties tarpinio serverio problemos. Taip gali nutikti dėl programinės įrangos klaidų, trūkstamų atnaujinimų arba aparatinės įrangos problemų. Patikrinkite proxy serverio žurnalus, ar juose nėra klaidų pranešimų arba įspėjimų. Atnaujinkite tarpinio serverio naujausią versiją ir patikrinkite, ar nėra žinomų problemų. Kai kuriais atvejais, norint išspręsti problemą, gali tekti iš naujo įdiegti proxy serverį arba pereiti prie alternatyvaus programinės įrangos sprendimo.
    • Svarbu pažymėti, kad HTTP būsenos kodo 502 Bad Gateway išsprendimas labai priklauso nuo konkrečios aplinkos ir konfigūracijos. Gali būti naudinga bendradarbiauti su patyrusiu programuotoju arba sistemos administratoriumi, kad būtų galima diagnozuoti ir išspręsti problemą.

      .

Kaip sukurti savo klaidų puslapį, kuriame būtų rodomas būsenos kodas 502

Sukurti savo 502 Bad Gateway klaidos puslapį gana paprasta naudojant tiek "Apache", tiek "NGINX" žiniatinklio serverius.

Apache Webserver

Interneto serveris "Apache" yra vienas iš labiausiai paplitusių interneto svetainių serverių. Norėdami sukurti savo 502 Bad Gateway klaidos puslapį "Apache", šiame faile reikia atlikti toliau nurodytus pakeitimus.

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

NGINX Webserver

Panašiai kaip ir žiniatinklio serveris "Apache", "NGINX" taip pat plačiai naudojamas internete. Norėdami sukurti savo 502 Bad Gateway klaidos puslapį "NGINX", šiame faile reikia atlikti toliau nurodytus pakeitimus.

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

502 būsenos kodo suderinamumas su naršyklėmis

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

Konstantos programavimo kalbose

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

502 būsenos kodo būsenos poaibio kodai

Papildomi būsenos kodai yra grynai techninio pobūdžio ir niekada neturėtų būti siunčiami naudotojui. Pavyzdžiui, jei išmetamas būsenos kodas 502.1, jis gali būti registruojamas, tačiau naudotojui bus siunčiamas būsenos kodas 502.:
502.1 CGI application timeout
HTTP IIS, Neoficialus
502.2 Bad gateway: Premature Exit
HTTP IIS, Neoficialus
502.3 Bad Gateway: Forwarder Connection Error (ARR)
HTP IIS, Neoficialus
502.4 Bad Gateway: No Server (ARR)
HTP IIS, Neoficialus
502.5 WebSocket failure (ARR)
HTTP IIS, Neoficialus
502.6 Forwarded request failure (ARR)
HTTP IIS, Neoficialus
502.7 Execute request failure (ARR)
HTTP IIS, Neoficialus

Išorinės nuorodos, kuriose pateikiama daugiau informacijos apie HTTP būsenos kodą 502:

Autorius: Tony Brüser
Autorius: Tony Brüser

Tony Brüseris yra entuziastingas žiniatinklio kūrėjas, mėgstantis HTTP būsenos kodus.

LinkedInGitHub