PvP Server Kiralama & Oyun Sunucuları
0 Giriş Yap Kayıt Ol

Lahendus 502 halva lüüsi ja 504 lüüsi ajalõpu veale Linuxi serveris

Yazdır

Lahendus 502 halva lüüsi ja 504 lüüsi ajalõpu veale Linuxi serveris

Samm-sammuline juhend Nginxi, Apache, PHP-FPM ja teenuse ajalõpu probleemide lahendamiseks.

veebisaitidel nähtud 502 Bad Gateway ja 504 Gateway Timeout vead tekivad tavaliselt seetõttu, et veebiserver ei saa tagateenuselt õiget vastust. See teenus võib olla PHP-FPM, Apache taustaprogramm, Node.js rakendus, mängupaneeli API teenus või mõni muu puhverserveri taga olev rakendus.

Need vead on eriti levinud hostimise, mängupaneeli, WHMCS-i, Pterodactyli, kohandatud halduspaneeli ja veebipõhiste käivitussüsteemide puhul.

Lihtne selgitus: Nginx on nagu uksehoidja. Kui sees olev PHP või rakendus ei reageeri, kuvab see kasutajale veateate 502 või 504.

1. Erinevus 502 ja 504 vea vahel

  • 502 Bad Gateway: Veebiserver ei saa taustateenusega ühendust luua või saab moonutatud vastuse.
  • 504 lüüsi ajalõpp: Taustateenus näib reageerivat, kuid vastust ei tagastata õigeaegselt.

Seega on 502 pigem ühenduse/teenuse krahh ja 504 aegluse või ajalõpu probleem.

2. Teenuse olekute kontrollimine

Kõigepealt kontrollige, kas veebiserver ja PHP-teenused töötavad.

systemctl status nginx
systemctl status apache2
systemctl status php-fpm

CentOS-i, AlmaLinuxi või Rocky Linuxi süsteemides võib PHP-FPM-teenuse nimetus olla:

systemctl status php-fpm
systemctl status httpd

Kui teenus on peatunud, taaskäivitage see:

systemctl restart nginx
systemctl restart php-fpm

3. Logifailide ülevaatamine

Vigade 502 ja 504 arvamine pole õige. Logifail näitab vea tegelikku põhjust.

tail -n 100 /var/log/nginx/error.log
tail -n 100 /var/log/apache2/error.log

CentOS-põhistes süsteemides:

tail -n 100 /var/log/httpd/error_log

Logides on näha järgmised väited:

  • connect() ebaõnnestus: Taustteenusega ei saa ühendust luua.
  • ülesvoolu aegunud: Taustateenus vastab hilja.
  • ühendamisest keelduti: Teenus ei tööta või edastatakse valesse porti.
  • luba keelatud: Pistikupesa või faili loaga on probleem.

4. PHP-FPM pesa või pordi juhtimine

Nginx ühendub PHP-FPM-iga pistikupesa või pordi kaudu. PHP-FPM tee Nginxi konfiguratsioonifailis ja tegelik PHP-FPM kuulamisväärtus peavad olema samad.

grep -R "fastcgi_pass" /etc/nginx/sites-enabled/
grep -R "listen =" /etc/php/*/fpm/pool.d/www.conf

Näiteks kui Nginx kasutab:

fastcgi_pass unix:/run/php/php8.2-fpm.sock;

Sama pesa tuleks kuulata PHP-FPM poolel:

listen = /run/php/php8.2-fpm.sock
Tähtis: Kui PHP-versioon on muutunud, võib Nginx endiselt vaadata vana PHP-FPM-i pesa teed. See on 502 vigade üks levinumaid põhjuseid.

5. Ajalõpu sätete suurendamine

504 vead võivad tekkida suurtes töötlemispaneelides, mänguturgudel, API-des või aeglaselt töötavates PHP-skriptides. Nginxi ajalõpu väärtusi saab suurendada.

nano /etc/nginx/nginx.conf

http-plokile või vastavale serveriplokile saab lisada järgmised väärtused:

proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
fastcgi_read_timeout 300;

Testige sätteid ja taaskäivitage Nginx:

nginx -t
systemctl restart nginx

6. PHP-FPM protsessipiirangute kontrollimine

Kui liiklus suureneb, võivad PHP-FPM tehingulimiidid olla ebapiisavad. Sel juhul pannakse päringud järjekorda ja tekib ajalõpp.

nano /etc/php/8.2/fpm/pool.d/www.conf

Näidisseaded:

pm = dynamic
pm.max_children = 30
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

Neid väärtusi tuleks kohandada vastavalt serveri RAM-i mahule. Liiga kõrge väärtuse määramine suurendab RAM-i tarbimist.

Levinud vead

  • Seadete muutmine logifaili vaatamata
  • Nginxi pesa teed ei värskendata, kuigi PHP versioon on muutunud
  • Tegelikku aeglast päringut ei parandata ajalõpu suurendamisega
  • PHP-FPM piirangute suurendamine ilma RAM-i arvutamata
  • Teenuse taaskäivitamine ilma Nginxi konfiguratsiooni testimata

KKK

Kas vea 502 põhjustab alati Nginx?
Ei. Nginx näitab ainult viga. Tõeline probleem võib olla PHP-FPM-is, Apache'i taustaprogrammis, rakenduses Node.js või mõnes muus teenuses.

Kas ajalõpu suurendamine on 504 vigade lõplik lahendus?
Mitte alati. Ajalõpu suurendamine pakub ajutist leevendust. Tõeline lahendus on aeglase päringu, raske töötlemise või jõudlusprobleemi leidmine.

Kas PHP-FPM-i taaskäivitamine on ohutu?
See on üldiselt ohutu, kuid aktiivsed päringud võivad lühiajaliselt mõjuda. Hõivatud süsteemides tuleks eelistada vähese liiklusega tunde.

Tulemuslikkuse soovitused

  • Kontrollige regulaarselt PHP-FPM versiooni ja pesa teed.
  • Uurige aeglaseid päringuloge veebipaneelis ja API-teenustes.
  • Kui RAM on ebapiisav, ärge suurendage PHP-FPM max_children väärtust alateadlikult.
  • Vähendage taustakoormust vahemälusüsteemi abil.
  • Logrotate abil saate hallata vealogisid, enne kui need kasvavad.

See artikkel on spetsiaalselt ette valmistatud PvPServeri jaoks.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner