Betalningsmetoder Abuse

Så här åtgärdar du 404 Not Found Nginx när minnet är lågt

  • Hem
  • Kunskapsbas
  • Så här åtgärdar du 404 Not Found Nginx när minnet är lågt
15.11.2023, 13:31

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.

Hur löser jag felet om det inte finns tillräckligt med RAM-minne?

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.

Så här åtgärdar du 404 Not Found Nginx när minnet är lågt

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.

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.

systemd

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

supervisord

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.