404 Not Found
on virhe, joka ilmenee, kun yrität käyttää verkkosivua tai resurssia, jota ei löydy palvelimelta. Nginx on verkkopalvelin ja välityspalvelin, jota voidaan käyttää verkkosivustojen palvelemiseen. 404 Not Found Nginx
tarkoittaa, että pyydettyä sivua tai resurssia ei löytynyt Nginxiä käyttävältä palvelimelta.
Kun php-skriptillä ei ollut riittävästi RAM-muistia suoritettavaksi ja järjestelmä pysäytti sen prosessin, Nginx voi myös palauttaa 404-virheen.
Tämä on tilanne, jonka näet, kun komentosarjaa suoritetaan pitkään, minkä jälkeen se palauttaa"404 Not Found
" tai moottorisi virhesivun. Yleensä tämä virhe näkyy myös debug-lokissa.
Ongelma ratkaistaan vapauttamalla muistia palvelimelta, usein tämä voi johtua php:n muistivuodoista, kun php-fpm-prosessit
vievät lähes kaiken muistin palvelimelta. Käynnistämällä php-fpm
uudelleen ongelma on osittain ratkaistu:
$ systemctl restart php-fpm
Voidaanko tämä tilanne välttää tulevaisuudessa? Vastaus on kyllä, voidaan. Tätä varten sinun on määritettävä prosessien automaattinen uudelleenkäynnistys.
Jos haluat määrittää prosessit käynnistymään automaattisesti uudelleen tietyn määrän pyyntöjä jälkeen Linuxissa, voit käyttää prosessien hallintatyökaluja, kuten systemd
:tä tai supervisordia
.
Luo /etc/systemd/system/-hakemistoon
.service-päätteinen
tiedosto, jossa on prosessien konfiguraatio. Esimerkiksi tiedosto 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
Tässä esimerkissä StartLimitBurst-parametrilla
määritetään uudelleenkäynnistysten määrä ennen prosessin väliaikaista sammuttamista.
Kun olet luonut palvelutiedoston, suorita komento käynnistääksesi systemd:n
uudelleen ja aktivoidaksesi uuden palvelun:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Asenna se Linux-jakelusi paketinhallinnan avulla. Luo sitten prosessin konfigurointitiedosto hakemistoon /etc/supervisor/conf.d/
. Esimerkiksi tiedosto php-fpm.conf
:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
Tässä esimerkissä parametri startretries
määrittää prosessin uudelleenkäynnistysyritysten määrän.
Kun olet luonut asetustiedoston, käynnistä supervisord
uudelleen:
sudo supervisorctl reread
sudo supervisorctl update
Näiden vaiheiden avulla voit määrittää prosessit käynnistymään automaattisesti uudelleen tietyn määrän pyyntöjen käsittelyn jälkeen Linuxissa.