404 Not Found
je chyba, ktorá sa vyskytne pri pokuse o prístup k webovej stránke alebo zdroju, ktorý sa na serveri nenachádza. Nginx je webový server a proxy server, ktorý možno použiť na obsluhu webových stránok. Chyba 404 Not Found Nginx
znamená, že požadovaná stránka alebo zdroj sa nenašli na serveri, ktorý používa Nginx.
Keď php skript nemal dostatok pamäte RAM na vykonanie a jeho proces bol zastavený systémom, Nginx môže tiež vrátiť chybu 404.
Túto situáciu uvidíte, keď skript beží dlhý čas, po ktorom vráti"404 Not Found
" alebo chybovú stránku vášho motora. Zvyčajne je táto chyba viditeľná aj v protokole ladenia.
Problém sa rieši uvoľnením pamäte na serveri, často sa to môže stať v dôsledku úniku pamäte v php, keď procesy php-fpm
zaberajú takmer všetku pamäť na serveri. Reštartovaním php-fpm
sa tento problém čiastočne vyrieši:
$ systemctl restart php-fpm
Dá sa tejto situácii v budúcnosti predísť? Odpoveď je áno, môžete. Ak to chcete urobiť, musíte nakonfigurovať automatické reštartovanie procesov.
Na konfiguráciu automatického reštartu procesov po určitom počte požiadaviek v systéme Linux môžete použiť nástroje na správu procesov, ako je systemd
alebo supervisord
.
Vytvorte súbor s príponou .service
v adresári /etc/systemd/system/
s konfiguráciou procesov. Napríklad súbor php-fpm.service
[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
V tomto príklade parameter StartLimitBurst
nastavuje počet reštartov pred dočasným vypnutím procesu.
Po vytvorení súboru služby spustite príkaz na reštartovanie systemd
a aktiváciu novej služby:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Nainštalujte ju pomocou správcu balíkov vašej distribúcie Linuxu. Potom vytvorte konfiguračný súbor pre váš proces v adresári /etc/supervisor/conf.d/
. Napríklad súbor php-fpm.conf:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
V tomto príklade parameter startretries
nastavuje počet pokusov o reštartovanie procesu.
Po vytvorení konfiguračného súboru reštartujte supervisord
:
sudo supervisorctl reread
sudo supervisorctl update
Tieto kroky vám pomôžu nakonfigurovať procesy tak, aby sa automaticky reštartovali po spracovaní určitého počtu požiadaviek v systéme Linux.