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

Megoldás az 502-es rossz átjáró és az 504-es átjáró időtúllépési hibájára a Linux-kiszolgálón

Yazdır

Megoldás az 502-es rossz átjáró és az 504-es átjáró időtúllépési hibájára a Linux-kiszolgálón

Lépésről lépésre szóló útmutató az Nginx, Apache, PHP-FPM és a szolgáltatás időtúllépési problémáinak megoldásához.

weboldalakon látható 502 Rossz átjáró és 504 Gateway Timeout A hibák általában azért fordulnak elő, mert a webszerver nem kapja meg a megfelelő választ a háttérszolgáltatástól. Ez a szolgáltatás lehet PHP-FPM, Apache háttérrendszer, Node.js alkalmazás, játékpanel API szolgáltatás vagy más, a proxy mögötti alkalmazás.

Ezek a hibák különösen gyakoriak a hosting, a játékpanel, a WHMCS, a Pterodactyl, az egyéni adminisztrációs panel és a webalapú indítórendszereknél.

Egyszerű magyarázat: Nginx olyan, mint a kísérő az ajtóban. Ha a PHP vagy a benne lévő alkalmazás nem válaszol, 502-es vagy 504-es hibát fog jelezni a felhasználónak.

1. Különbség 502 és 504 hiba között

  • 502 Bad Gateway: A webszerver nem tud csatlakozni a háttérszolgáltatáshoz, vagy hibás választ kap.
  • 504-es átjáró időtúllépése: Úgy tűnik, hogy a háttérszolgáltatás válaszol, de a választ nem küldi vissza időben.

Tehát az 502 inkább kapcsolat/szolgáltatás összeomlás, az 504 pedig lassúság vagy időtúllépési probléma.

2. Szolgáltatási állapotok ellenőrzése

Először ellenőrizze, hogy a webszerver és a PHP-szolgáltatások futnak-e.

systemctl status nginx
systemctl status apache2
systemctl status php-fpm

CentOS, AlmaLinux vagy Rocky Linux rendszereken a PHP-FPM szolgáltatás neve lehet:

systemctl status php-fpm
systemctl status httpd

Ha a szolgáltatás leállt, indítsa újra:

systemctl restart nginx
systemctl restart php-fpm

3. Naplófájlok áttekintése

Nem helyes az 502-es és 504-es hibák találgatása. A naplófájl megmutatja a hiba valódi okát.

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

CentOS-alapú rendszereken:

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

A naplókban a következő állítások láthatók:

  • connect() sikertelen: Nem lehet csatlakozni a háttérszolgáltatáshoz.
  • upstream időtúllépés: A háttérszolgáltatás későn válaszol.
  • kapcsolat elutasítva: A szolgáltatás nem működik, vagy rossz portra van továbbítás.
  • engedély megtagadva: Socket- vagy fájlengedély-probléma van.

4. PHP-FPM Socket vagy Port Control

Az Nginx aljzaton vagy porton keresztül csatlakozik a PHP-FPM-hez. Az Nginx konfigurációs fájlban lévő PHP-FPM elérési útnak és a tényleges PHP-FPM figyelési értéknek meg kell egyeznie.

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

Például, ha az Nginx a következőket használja:

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

Ugyanezt a socketet kell hallgatni a PHP-FPM oldalon:

listen = /run/php/php8.2-fpm.sock
Fontos: Ha a PHP verzió megváltozott, az Nginx továbbra is a régi PHP-FPM socket elérési útját nézi. Ez az 502-es hibák egyik leggyakoribb oka.

5. Az időtúllépési beállítások növelése

504-es hibákat kaphatnak nagy feldolgozó panelek, játékpiacok, API-k vagy lassan futó PHP szkriptek. Az Nginx időtúllépési értékei növelhetők.

nano /etc/nginx/nginx.conf

A következő értékeket lehet hozzáadni a http blokkhoz vagy a megfelelő szerver blokkhoz:

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

Tesztelje a beállításokat, és indítsa újra az Nginx-et:

nginx -t
systemctl restart nginx

6. PHP-FPM folyamatkorlátok ellenőrzése

A forgalom növekedése esetén előfordulhat, hogy a PHP-FPM tranzakciós korlátok nem elegendőek. Ebben az esetben a kérések sorba kerülnek, és időtúllépés lép fel.

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

Példa beállítások:

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

Ezeket az értékeket a szerver RAM mennyiségének megfelelően kell beállítani. A túl magas érték beállítása növeli a RAM-fogyasztást.

Gyakori hibák

  • Beállítások módosítása a naplófájl megtekintése nélkül
  • Nem frissíti az Nginx socket elérési útját, bár a PHP verzió megváltozott
  • Nem javítja ki a tényleges lassú lekérdezést az időtúllépés növelésével
  • PHP-FPM korlátok növelése RAM számítása nélkül
  • A szolgáltatás újraindítása az Nginx konfiguráció tesztelése nélkül

GYIK

Az 502-es hibát mindig az Nginx okozza?
Nem. Az Nginx csak a hibát mutatja. Az igazi probléma a PHP-FPM-ben, az Apache háttérrendszerben, a Node.js alkalmazásban vagy más szolgáltatásban lehet.

Az időtúllépés növelése a végleges megoldás az 504-es hibákra?
Nem mindig. Az időkorlát növelése átmeneti enyhülést jelent. Az igazi megoldás a lassú lekérdezés, a nehéz feldolgozás vagy a teljesítményprobléma megtalálása.

Biztonságos a PHP-FPM újraindítása?
Általában biztonságos, de az aktív kéréseket rövid ideig érintheti. A forgalmas rendszerekben az alacsony forgalmú órákat kell előnyben részesíteni.

Teljesítményre vonatkozó ajánlások

  • Rendszeresen ellenőrizze a PHP-FPM verzióját és a socket elérési útját.
  • Vizsgálja meg a lassú lekérdezési naplókat a webpanelen és az API-szolgáltatásokban.
  • Ha a RAM nem elegendő, ne növelje öntudatlanul a PHP-FPM max_children értékét.
  • Csökkentse a háttérterhelést gyorsítótár-rendszer használatával.
  • A logrotate segítségével kezelheti a hibanaplókat, mielőtt azok növekednének.

Ez a cikk kifejezetten a PvPServer számára készült.

Bu cevap yeterince yardımcı oldu mu?

Oyla

overlay spinner