404 Not Found
је грешка која се јавља када покушате да приступите веб страници или ресурсу који није пронађен на серверу. Nginx је веб сервер и прокси сервер који се може користити за приказивање веб локација. 404 Not Found Nginx
значи да тражена страница или ресурс није пронађен на серверу који користи Nginx.
Када PHP скрипта нема довољно RAM меморије за извршавање и систем прекине њен процес, Nginx такође може вратити грешку 404.
Ову ситуацију ћете видети када скрипта ради дуже време, након чега враћа грешку „ 404 Not Found
“ или страницу са грешком вашег претраживача. Обично је овај квар видљив и у дневнику отклањања грешака.
Проблем се решава ослобађањем меморије на серверу, што се често може десити због цурења меморије у 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
Ови кораци ће вам помоћи да подесите аутоматско поновно покретање процеса након обраде одређеног броја захтева у Линуксу.