404 Not Found
er en feil som oppstår når du prøver å få tilgang til en nettside eller en ressurs som ikke finnes på serveren. Nginx er en webserver og proxy-server som kan brukes til å betjene nettsteder. 404 Not Found Nginx
betyr at den forespurte siden eller ressursen ikke ble funnet på serveren som bruker Nginx.
Når et php-skript ikke hadde nok RAM til å kjøre og prosessen ble stoppet av systemet, kan Nginx også returnere en 404-feil.
Dette er situasjonen du vil se når skriptet kjører i lang tid, hvoretter det returnerer"404 Not Found
" eller motorens feilside. Vanligvis er denne feilen også synlig i feilsøkingsloggen.
Problemet løses ved å frigjøre minne på serveren, ofte kan dette skje på grunn av minnelekkasjer i php når php-fpm-prosesser
tar opp nesten alt minnet på serveren. Ved å starte php-fpm
på nytt er dette problemet delvis løst:
$ systemctl restart php-fpm
Kan denne situasjonen unngås i fremtiden? Svaret er ja, det kan du. For å gjøre dette må du konfigurere automatisk omstart av prosesser.
For å konfigurere prosesser til å starte på nytt automatisk etter et visst antall forespørsler i Linux, kan du bruke prosessadministrasjonsverktøy som systemd
eller supervisord
.
Opprett en fil med filtypen .service
i katalogen /etc/systemd/system/
med prosesskonfigurasjonen din. 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 eksempelet angir StartLimitBurst-parameteren
antall omstarter før prosessen midlertidig slås av.
Når du har opprettet tjenestefilen, kjører du kommandoen for å starte systemd
på nytt og aktivere den nye tjenesten:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Installer den ved hjelp av Linux-distribusjonens pakkebehandler. Deretter oppretter du en konfigurasjonsfil for prosessen din i katalogen /etc/supervisor/conf.d/
. For eksempel filen php-fpm.conf:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
I dette eksempelet angir parameteren startretries
antall forsøk på å starte prosessen på nytt.
Når du har opprettet konfigurasjonsfilen, starter du supervisord
på nytt:
sudo supervisorctl reread
sudo supervisorctl update
Disse trinnene hjelper deg med å konfigurere prosesser til å starte på nytt automatisk etter å ha behandlet et visst antall forespørsler i Linux.