404 Not Found
on viga, mis ilmneb, kui püüate pääseda veebilehele või ressursile, mida serveris ei leidu. Nginx on veebiserver ja proxy server, mida saab kasutada veebilehtede teenindamiseks. 404 Not Found Nginx
tähendab, et soovitud lehekülge või ressurssi ei leitud Nginxi kasutavas serveris.
Kui php-skriptil ei olnud täitmiseks piisavalt RAM-i ja selle protsess peatati süsteemi poolt, võib Nginx tagastada ka 404-vea.
Seda olukorda näete siis, kui skript töötab pikka aega, mille järel tagastab ta"404 Not Found
" või teie mootori vealehe. Tavaliselt on see viga nähtav ka silumislogis.
Probleemi lahendamiseks tuleb serveris mälu vabastada, sageli võib see juhtuda php mälulekete tõttu, kui php-fpm
protsessid võtavad peaaegu kogu serveri mälu. php-fpm
taaskäivitamisega on see probleem osaliselt lahendatud:
$ systemctl restart php-fpm
Kas seda olukorda saab tulevikus vältida? Vastus on jaatav, saab. Selleks tuleb seadistada protsesside automaatne taaskäivitamine.
Protsesside automaatse taaskäivitamise konfigureerimiseks pärast teatud arvu päringute sooritamist Linuxis saate kasutada protsessihaldusvahendeid, näiteks systemd
või supervisord
.
Loo kataloogi /etc/systemd/system/
kataloogi .service
laiendiga fail oma protsesside konfiguratsiooniga. Näiteks fail 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
Selles näites määrab parameeter StartLimitBurst
, mitu taaskäivitust enne protsessi ajutist väljalülitamist.
Pärast teenuse faili loomist käivitage käsk, et taaskäivitada systemd
ja aktiveerida uus teenus:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Paigaldage see oma Linuxi distributsiooni paketihalduri abil. Seejärel looge oma protsessi jaoks konfiguratsioonifail kataloogi /etc/supervisor/conf.d/
. Näiteks fail php-fpm.conf
:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
Selles näites määrab parameeter startretries
protsessi taaskäivituskatsete arvu.
Pärast konfiguratsioonifaili loomist taaskäivitage supervisord
:
sudo supervisorctl reread
sudo supervisorctl update
Need sammud aitavad teil konfigureerida protsesse nii, et need taaskäivituksid automaatselt pärast teatud arvu päringute töötlemist Linuxis.