Betaalmethoden Abuse

Hoe 404 Niet Gevonden Nginx op te lossen wanneer het geheugen laag is

15.11.2023, 13:31

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.

Hoe kan ik de fout oplossen als er niet genoeg RAM is?

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.

Hoe 404 Niet Gevonden Nginx op te lossen wanneer het geheugen laag is

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.

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.

systemd

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

supervisord

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.