Fizetési módok Abuse

Hogyan kell javítani a 404 Not Found Nginx, ha a memória alacsony

15.11.2023, 13:31

A404 Not Found egy olyan hiba, amely akkor jelentkezik, amikor olyan weboldalt vagy erőforrást próbál elérni, amely nem található a szerveren. Az Nginx egy webkiszolgáló és proxy-kiszolgáló, amely weboldalak kiszolgálására használható. A 404 Not Found Nginx azt jelenti, hogy a kért oldal vagy erőforrás nem található az Nginxet használó kiszolgálón.

Hogyan oldható meg a hiba, ha nincs elég RAM?

Ha egy php szkriptnek nem volt elég RAM-ja a végrehajtáshoz, és a rendszer leállította a folyamatát, az Nginx is 404-es hibát küldhet vissza.

Ez az a helyzet, amikor a szkript hosszú ideig fut, majd a"404 Not Found" vagy a motor hibaoldalát küldi vissza. Általában ez a hiba a hibakeresési naplóban is látható.

Hogyan kell javítani a 404 Not Found Nginx, ha a memória alacsony

A probléma a szerveren lévő memória felszabadításával oldható meg, gyakran előfordulhat ez a php memóriaszivárgás miatt, amikor a php-fpm folyamatok szinte az összes memóriát lefoglalják a szerveren. A php-fpm újraindításával ez a probléma részben megoldódik:

$ systemctl restart php-fpm

Elkerülhető ez a helyzet a jövőben? A válasz igen, meg lehet. Ehhez be kell állítania a folyamatok automatikus újraindítását.

A folyamatok automatikus újraindításának beállítása

A folyamatok konfigurálásához, hogy bizonyos számú kérés után automatikusan újrainduljanak Linuxban, olyan folyamatkezelő eszközöket használhat, mint a systemd vagy a supervisord.

systemd

Hozzon létre egy .service kiterjesztésű fájlt az /etc/systemd/system/ könyvtárban a folyamatok konfigurációjával. Például a php-fpm.service fájlt

[Unit]
Description=PHP FastCGI Process Manager
After=network.target
[Service]
Type=simple
ExecStart=/usr/sbin/php-fpm
Restart=always
RestartSec=3
StartLimitInterval=0
StartLimitBurst=10
[Install]
WantedBy=multi-user.target

Ebben a példában a StartLimitBurst paraméter állítja be az újraindítások számát, mielőtt a folyamat ideiglenesen leáll.

A szolgáltatásfájl létrehozása után futtassa a parancsot a systemd újraindításához és az új szolgáltatás aktiválásához:

sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service

supervisord

Telepítse a Linux disztribúció csomagkezelőjével. Ezután hozzon létre egy konfigurációs fájlt a folyamatához az /etc/supervisor/conf.d/ könyvtárban. Például a php-fpm.conf fájlt:

[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10

Ebben a példában a startretries paraméter állítja be a folyamat újraindítási kísérletek számát.

A konfigurációs fájl létrehozása után indítsa újra a supervisordot:

sudo supervisorctl reread
sudo supervisorctl update

Ezek a lépések segítenek a folyamatok konfigurálásában, hogy bizonyos számú kérés feldolgozása után automatikusan újrainduljanak Linux alatt.