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.
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ó.
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 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
.
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
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.