Metode de plată Abuse

Cum să remediați 404 Not Found Nginx atunci când memoria este scăzută

15.11.2023, 13:31

404 Not Found este o eroare care apare atunci când încercați să accesați o pagină web sau o resursă care nu este găsită pe server. Nginx este un server web și un server proxy care poate fi utilizat pentru a servi site-uri web. 404 Not Found Nginx înseamnă că pagina sau resursa solicitată nu a fost găsită pe serverul care utilizează Nginx.

Cum să rezolvați eroarea dacă nu există suficientă memorie RAM?

Atunci când un script php nu a avut suficientă memorie RAM pentru a se executa și procesul său a fost oprit de sistem, Nginx poate returna și o eroare 404.

Aceasta este situația pe care o veți vedea atunci când scriptul rulează pentru o perioadă lungă de timp, după care returnează"404 Not Found" sau pagina de eroare a motorului dumneavoastră. De obicei, această eroare este vizibilă și în jurnalul de depanare.

Cum să remediați 404 Not Found Nginx atunci când memoria este scăzută

Problema se rezolvă prin eliberarea memoriei pe server, adesea acest lucru se poate întâmpla din cauza scurgerilor de memorie în php atunci când procesele php-fpm ocupă aproape toată memoria de pe server. Prin repornirea php-fpm această problemă este parțial rezolvată:

$ systemctl restart php-fpm

Poate fi evitată această situație în viitor? Răspunsul este da, se poate. Pentru a face acest lucru, trebuie să configurați repornirea automată a proceselor.

Configurarea repornirii automate a proceselor

Pentru a configura procesele să repornească automat după un anumit număr de cereri în Linux, puteți utiliza instrumente de gestionare a proceselor precum systemd sau supervisord.

systemd

Creați un fișier cu extensia .service în directorul /etc/systemd/system/ cu configurația proceselor dvs. De exemplu, fișierul 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

În acest exemplu, parametrul StartLimitBurst stabilește numărul de reporniri înainte ca procesul să se oprească temporar.

După crearea fișierului de serviciu, executați comanda pentru a reporni systemd și a activa noul serviciu:

sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service

supervisord

Instalați-l utilizând managerul de pachete al distribuției dvs. Linux. Apoi creați un fișier de configurare pentru procesul dvs. în directorul /etc/supervisor/conf.d/. De exemplu, fișierul php-fpm.conf:

[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10

În acest exemplu, parametrul startretries stabilește numărul de încercări de repornire a procesului.

După crearea fișierului de configurare, reporniți supervisord:

sudo supervisorctl reread
sudo supervisorctl update

Acești pași vă vor ajuta să configurați procesele pentru a reporni automat după procesarea unui anumit număr de cereri în Linux.