502 Bad Gateway: mida see tähendab ja kuidas seda parandada

Avate oma veebisaidi ja sisu asemel näete tühja lehte, kus seisab 502 Bad Gateway. See tundub hirmutav, kuid enamikul juhtudel on lahendus lihtne. Selgitame, mis toimub ja kuidas teie veebisaiti tööle saada.
Mida 502 tegelikult tähendab?
Kui külastaja soovib lehte, läbib päring tavaliselt kaks kihti: esiotsa veebiserver (tavaliselt Nginx) ja tagakülje rakendusserver (PHP-FPM, Apache, Node.js või midagi muud). Nginx saab päringu, edastab selle tagaküljele ja ootab vastust.
502 Bad Gateway tähendab, et Nginx üritas tagaküljelt vastust saada, kuid sai midagi kehtetut või ei saanud üldse vastust. Tagakülg kas krahhitas, keeldus ühendusest või tagastas midagi, mida Nginx ei suutnud mõista.
Levinud väärarusaam: 502 ei tähenda, et teie server on maas. Server ise on korras – hädas on Nginx-i taga olev rakendus.
Kõige tavalisemad põhjused
Tagakülje teenus on peatunud. See on peamine põhjus. PHP-FPM krahhitas, Apache jäi kinni või Node.js protsess lõppes vaikselt. Nginx-il pole millegagi rääkida.
Serveril on RAM-ist otsas. Kui mälu väheneb, võib Linux automaatselt tappa ressursimahukad protsessid. Seda mehhanismi nimetatakse OOM killer-iks ja PHP-FPM või MySQL on tavaliselt selle esimesed ohvrid. Kui see juhtub regulaarselt, kaaluge turvavõrguna vahetusfaili lisamist.
PHP-FPM töölise kogum on ammendunud. Kui teie veebisait saab rohkem samaaegseid päringuid, kui PHP-FPM suudab käsitleda, siis uued päringud järjekorda pannakse ja lõpuks aeguvad. See juhtub sageli siis, kui otsingumootori robotid indekseerivad teie veebisaiti liiga agressiivselt – sellest, kuidas sellega toime tulla, kirjutasime meie roboti blokeerimise giidis.
Valesti konfigureeritud pesa või port. Nginx eeldab, et PHP-FPM asub konkreetses Unixi pesas või TCP-pordis. Kui Nginxi konfiguratsioonis olev tee ei vasta PHP-FPM-i konfiguratsioonile, näete 502 tõrkeid kohe pärast mis tahes muudatust.
Kuidas seda tuvastada
Et järgmisi samme teha, ühendage oma serveriga SSH kaudu. Selle kohta, kuidas seda teha, saate lugeda meie SSH artiklist.
1. samm. Kontrollige, kas tagakülg töötab
Kontrollige oma tagakülje teenuse olekut:
sudo systemctl status php8.2-fpm
Asendage php8.2-fpm oma tegeliku PHP versiooni või tagakülje teenuse nimega. Kui väljund ütleb inactive (dead) või failed, on see teie probleem. Taaskäivitage see:
sudo systemctl restart php8.2-fpm
Seejärel kontrollige olekut uuesti, et veenduda, et see käivitus edukalt.
2. samm. Kontrollige Nginxi vealogiga
Vealogist saab peaaegu alati teada täpselt, mis valesti läks:
sudo tail -30 /var/log/nginx/error.log
Kui kasutate FASTPANEL®, saate logisid vaadata ka otse veebiliideses: avage saidi kaart, minge jaotisse "Logs" ja kontrollige vahekaarti "Frontend Error Log".
Siin on kõige tavalisemad veateated ja nende tähendus:
connect() failed - Connection refused - tagakülje teenus ei tööta. Taaskäivitage see, nagu näidatud 1. sammus.
connect() failed - No such file or directory - Nginx üritab ühenduda Unixi pesaga, mis ei eksisteeri. Kontrollige, kas teie Nginxi konfiguratsioonis olev pesa tee vastab sellele, mida PHP-FPM tegelikult loob.
upstream sent too big header - tagakülg tagastas HTTP päised, mis on vaikimisi puhvri jaoks liiga suured. Lisage need read oma Nginxi saidi konfiguratsiooni server ploki sisse:
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
Pärast redigeerimist testige konfiguratsiooni ja laadige Nginx uuesti:
sudo nginx -t && sudo systemctl reload nginx
3. samm. Kontrollige serveri ressursse
free -h
Kui veerud available näitavad vähem kui 100-200 MB vaba mälu, on teie serveril tõenäoliselt RAM-ist otsas. Kontrollige, mis seda tarbib:
ps aux --sort=-%mem | head -10
Kui mälu rõhk on peamine põhjus, on kiireim ajutine lahendus vahetusfaili lisamine. Kuid kettal olev vahetus on palju aeglasem kui RAM ja seda ei tohiks pidada p üsivaks lahenduseks. Kui teie serveril hakkab regulaarselt mälu otsa saama, on aeg optimeerida oma rakendusi või uuendada plaani rohkema RAM-iga.
Kokkuvõte
502 Bad Gateway on peaaegu alati tagakülje probleem – krahhitanud teenus, ammendunud töölised või ebapiisav mälu. Kontrollige tagakülje olekut, lugege Nginxi vealogiga ja vaadake oma ressursside kasutust. Enamikel juhtudel leiate vastuse mõne minutiga.
Kui te ei soovi sellega ise tegeleda, pakume kodu.cloud-is tasuta 24/7 tehnilist tuge iga VPS ja dedikeeritud serveriga. Kõik meie kliendid saavad lisatasuta ka FASTPANEL® Extended, mis muudab logianalüüsi ja teenuste haldamise veebiliidese kaudu märkimisväärselt lihtsamaks.