Makseviisid Abuse

Kuidas parandada 404 Not Found Nginx, kui mälu on vähene

15.11.2023, 13:31

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.

Kuidas lahendada viga, kui RAM-mälu ei ole piisavalt suur?

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.

Kuidas parandada 404 Not Found Nginx, kui mälu on vähene

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 seadistamine

Protsesside automaatse taaskäivitamise konfigureerimiseks pärast teatud arvu päringute sooritamist Linuxis saate kasutada protsessihaldusvahendeid, näiteks systemd või supervisord.

systemd

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

supervisord

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.