404 Not Found
is een fout die optreedt wanneer je een webpagina of bron probeert te openen die niet op de server wordt gevonden. Nginx is een webserver en proxyserver die kan worden gebruikt om websites te serveren. 404 Not Found Nginx
betekent dat de gevraagde pagina of bron niet is gevonden op de server die Nginx gebruikt.
Als een php-script niet genoeg RAM-geheugen had om uit te voeren en het proces werd gestopt door het systeem, kan Nginx ook een 404-fout teruggeven.
Dit is de situatie die je ziet als het script lange tijd draait, waarna het"404 Not Found"
of de foutpagina van je engine retourneert. Meestal is deze fout ook zichtbaar in het debug-logboek.
Het probleem is op te lossen door geheugen vrij te maken op de server, vaak kan dit gebeuren door geheugenlekken in php wanneer php-fpm
processen bijna al het geheugen op de server innemen. Door php-fpm
opnieuw te starten is dit probleem gedeeltelijk opgelost:
$ systemctl restart php-fpm
Kan deze situatie in de toekomst worden vermeden? Het antwoord is ja, dat kan. Om dit te doen, moet je het automatisch herstarten van processen configureren.
Om in Linux processen zo te configureren dat ze automatisch herstarten na een bepaald aantal verzoeken, kun je procesbeheertools gebruiken zoals systemd
of supervisord
.
Maak een bestand met de extensie .service
aan in de map /etc/systemd/system/
met je procesconfiguratie. Bijvoorbeeld het bestand 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
In dit voorbeeld stelt de parameter StartLimitBurst
het aantal herstarts in voordat het proces tijdelijk wordt afgesloten.
Voer na het maken van het servicebestand het commando uit om systemd
te herstarten en de nieuwe service te activeren:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Installeer het met de pakketbeheerder van je Linux-distributie. Maak dan een configuratiebestand voor je proces in de map /etc/supervisor/conf.d/
. Bijvoorbeeld het bestand php-fpm.conf
:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
In dit voorbeeld stelt de parameter startretries
het aantal pogingen in om het proces te herstarten.
Herstart supervisord
na het maken van het configuratiebestand:
sudo supervisorctl reread
sudo supervisorctl update
Deze stappen helpen je bij het configureren van processen om automatisch te herstarten na het verwerken van een bepaald aantal verzoeken in Linux.