Начини плаћања Abuse

Како поправити грешку 404 Није пронађен Nginx када нема довољно меморије

15.11.2023, 13:31

404 Not Found је грешка која се јавља када покушате да приступите веб страници или ресурсу који није пронађен на серверу. Nginx је веб сервер и прокси сервер који се може користити за приказивање веб локација. 404 Not Found Nginx значи да тражена страница или ресурс није пронађен на серверу који користи Nginx.

Како поправити грешку ако нема довољно РАМ-а?

Када PHP скрипта нема довољно RAM меморије за извршавање и систем прекине њен процес, Nginx такође може вратити грешку 404.

Ову ситуацију ћете видети када скрипта ради дуже време, након чега враћа грешку „ 404 Not Found “ или страницу са грешком вашег претраживача. Обично је овај квар видљив и у дневнику отклањања грешака.

Како поправити грешку 404 Није пронађен Nginx када нема довољно меморије

Проблем се решава ослобађањем меморије на серверу, што се често може десити због цурења меморије у php-у, када php-fpm процеси заузимају скоро сву меморију на серверу. Поновним покретањем php-fpm овај проблем се може делимично решити:

 $ systemctl restart php-fpm

Да ли је могуће избећи ову ситуацију у будућности? Одговор је да, могуће је. Да бисте то урадили, потребно је да подесите аутоматско поновно покретање процеса.

Подешавање аутоматског поновног покретања процеса

Да бисте конфигурисали процесе да се аутоматски поново покрећу након обраде одређеног броја захтева у Линуксу, можете користити алате за управљање процесима као што су systemd или supervisord .

системд

Направите датотеку са екстензијом .service у директоријуму /etc/systemd/system/ са конфигурацијом вашег процеса. На пример, датотеку 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

У овом примеру, параметар StartLimitBurst подешава број поновних покретања пре него што се процес привремено онемогући.

Након креирања сервисне датотеке, покрените команду да бисте поново покренули systemd и омогућили нову услугу:

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

супервизор

Инсталирајте га користећи менаџер пакета ваше Linux дистрибуције. Затим креирајте конфигурациону датотеку за ваш процес у директоријуму /etc/supervisor/conf.d/ . На пример, датотеку php-fpm.conf :

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

У овом примеру, параметар startretries подешава број поновних покретања процеса.

Након креирања конфигурационе датотеке, поново покрените supervisord :

 sudo supervisorctl reread sudo supervisorctl update

Ови кораци ће вам помоћи да подесите аутоматско поновно покретање процеса након обраде одређеног броја захтева у Линуксу.