404 No Encontrado
es un error que se produce cuando se intenta acceder a una página web o recurso que no se encuentra en el servidor. Nginx es un servidor web y servidor proxy que se puede utilizar para servir sitios web. 404 Not Found Nginx
significa que la página o recurso solicitado no se encontró en el servidor que utiliza Nginx.
Cuando un script php no tiene suficiente RAM para ejecutarse y su proceso fue detenido por el sistema, Nginx también puede devolver un error 404.
Esta es la situación que verás cuando el script se ejecuta durante mucho tiempo, tras lo cual devuelve"404 Not Found
" o la página de error de tu motor. Normalmente este fallo también es visible en el registro de depuración.
El problema se soluciona liberando memoria en el servidor, a menudo esto puede ocurrir debido a fugas de memoria en php cuando los procesos php-fpm
ocupan casi toda la memoria del servidor. Reiniciando php-fpm
este problema se soluciona parcialmente:
$ systemctl restart php-fpm
¿Se puede evitar esta situación en el futuro? La respuesta es sí, se puede. Para ello, es necesario configurar el reinicio automático de procesos.
Para configurar los procesos para que se reinicien automáticamente después de un cierto número de peticiones en Linux, puedes utilizar herramientas de gestión de procesos como systemd
o supervisord
.
Cree un archivo con la extensión .service
en el directorio /etc/systemd/system/
con su configuración de procesos. Por ejemplo, el archivo 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
En este ejemplo, el parámetro StartLimitBurst
establece el número de reinicios antes de que el proceso se apague temporalmente.
Después de crear el archivo de servicio, ejecute el comando para reiniciar systemd
y activar el nuevo servicio:
sudo systemctl daemon-reload
sudo systemctl enable php-fpm.service
sudo systemctl start php-fpm.service
Instálalo utilizando el gestor de paquetes de tu distribución de Linux. A continuación, cree un archivo de configuración para su proceso en el directorio /etc/supervisor/conf.d/
. Por ejemplo, el archivo php-fpm.conf
:
[program:php-fpm]
command=/usr/sbin/php-fpm
autorestart=true
startretries=10
En este ejemplo, el parámetro startretries
establece el número de intentos para reiniciar el proceso.
Después de crear el archivo de configuración, reinicie supervisord
:
sudo supervisorctl reread
sudo supervisorctl update
Estos pasos le ayudarán a configurar procesos para que se reinicien automáticamente después de procesar un cierto número de peticiones en Linux.