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
Можно ли избежать этой ситуации в дальнейшем? Ответ - да, можно. Для этого необходимо настроить автоматический перезапуск процессов.
Для настройки автоматического перезапуска процессов после обработки определенного количества запросов в Linux, вы можете использовать инструменты управления процессами, такие как 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
Эти шаги помогут вам настроить автоматический перезапуск процессов после обработки определенного количества запросов в Linux.
Примените скидку, вставив промокод в специальное поле при оформлении заказа: