404 Not Found
er en fejl, der opstår, når du forsøger at få adgang til en webside eller en ressource, der ikke findes på serveren. Nginx er en webserver og proxyserver, der kan bruges til at betjene hjemmesider. 404 Not Found Nginx
betyder, at den ønskede side eller ressource ikke blev fundet på den server, der bruger Nginx.
Når et php-script ikke havde nok RAM til at køre, og dets proces blev stoppet af systemet, kan Nginx også returnere en 404-fejl.
Det er den situation, du vil se, når scriptet kører i lang tid, hvorefter det returnerer"404 Not Found
" eller din motors fejlside. Normalt er denne fejl også synlig i debug-loggen.
Problemet løses ved at frigøre hukommelse på serveren, ofte kan dette ske på grund af hukommelseslækager i php, når php-fpm-processer
optager næsten al hukommelse på serveren. Ved at genstarte php-fpm
er dette problem delvist løst:
$ systemctl restart php-fpm
Kan man undgå denne situation i fremtiden? Svaret er ja, det kan man. For at gøre det skal du konfigurere automatisk genstart af processer.
For at konfigurere processer til at genstarte automatisk efter et vist antal forespørgsler i Linux kan du bruge processtyringsværktøjer som systemd
eller supervisord
.
Opret en fil med filtypenavnet .service
i biblioteket /etc/systemd/system/
med din proceskonfiguration. For eksempel filen 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
I dette eksempel indstiller parameteren StartLimitBurst
antallet af genstarter, før processen lukkes midlertidigt ned.
Når du har oprettet servicefilen, skal du køre kommandoen for at genstarte systemd
og aktivere den nye service:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Installer den ved hjælp af din Linux-distributions pakkehåndtering. Opret derefter en konfigurationsfil til din proces i biblioteket /etc/supervisor/conf
. d/
. For eksempel filen php-fpm.conf:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
I dette eksempel indstiller parameteren startretries
antallet af forsøg på at genstarte processen.
Når du har oprettet konfigurationsfilen, skal du genstarte supervisord
:
sudo supervisorctl reread
sudo supervisorctl update
Disse trin hjælper dig med at konfigurere processer til at genstarte automatisk efter at have behandlet et bestemt antal forespørgsler i Linux.