404 Not Found
är ett fel som uppstår när du försöker komma åt en webbsida eller resurs som inte finns på servern. Nginx är en webbserver och proxyserver som kan användas för att betjäna webbplatser. 404 Not Found Nginx
innebär att den begärda sidan eller resursen inte hittades på den server som använder Nginx.
När ett php-skript inte hade tillräckligt med RAM för att köras och dess process stoppades av systemet, kan Nginx också returnera ett 404-fel.
Det här är den situation du kommer att se när skriptet körs under lång tid, varefter det returnerar"404 Not Found
" eller din motors felsida. Vanligtvis är detta fel också synligt i felsökningsloggen.
Problemet löses genom att frigöra minne på servern, ofta kan detta ske på grund av minnesläckor i php när php-fpm
processer tar upp nästan allt minne på servern. Genom att starta om php-fpm
är detta problem delvis löst:
$ systemctl restart php-fpm
Kan denna situation undvikas i framtiden? Svaret är ja, det kan du. För att göra detta måste du konfigurera automatisk omstart av processer.
Om du vill konfigurera processer så att de startar om automatiskt efter ett visst antal förfrågningar i Linux kan du använda processhanteringsverktyg som systemd
eller supervisord
.
Skapa en fil med tillägget .service
i katalogen /etc/systemd/system/
med din processkonfiguration. Till exempel 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 det här exemplet anger parametern StartLimitBurst
antalet omstarter innan processen stängs av tillfälligt.
När du har skapat servicefilen kör du kommandot för att starta om systemd
och aktivera den nya tjänsten:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Installera den med hjälp av pakethanteraren i din Linux-distribution. Skapa sedan en konfigurationsfil för din process i katalogen /etc/supervisor/conf.d/
. Till exempel filen php-fpm.conf:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
I det här exemplet anger parametern startretries
hur många försök som ska göras för att starta om processen.
När du har skapat konfigurationsfilen startar du om supervisord
:
sudo supervisorctl reread
sudo supervisorctl update
Dessa steg hjälper dig att konfigurera processer så att de startar om automatiskt efter att ha bearbetat ett visst antal förfrågningar i Linux.