Red de conocimiento informático - Conocimiento de la instalación - Error del servidor 500, el servidor es Nginx.

Error del servidor 500, el servidor es Nginx.

Error Nginx 500 (Error interno del servidor): el error 500 se refiere a un error interno del servidor, es decir, el servidor encuentra una situación inesperada y no puede cumplir con la solicitud.

Generalmente existen varias situaciones para los errores 500:

1. Errores de script web, como errores de sintaxis de php, errores de sintaxis de lua, etc.

2. Cuando el tráfico es grande, no se pueden abrir demasiados archivos debido a limitaciones de recursos del sistema.

Ideas generales de análisis:

(1) Ver error de nginx log, verifique el registro de errores de php

(2) Si hay demasiados archivos abiertos, modifique el parámetro trabajador_rlimit_nofile de nginx, use ulimit para verificar el límite de archivos abiertos del sistema, modifique /etc/security/limits. conf

(3) Si es un problema de script, necesita corregir los errores del script y optimizar el código

(4) Si ha realizado todo tipo de optimizaciones, pero también Aún aparecen muchos archivos abiertos, entonces debe considerar equilibrar la carga y distribuir el tráfico a diferentes servidores.

Resumen de los motivos del error:

1. El espacio en el disco duro está lleno.

Utilice df -k para comprobar si el espacio en el disco duro está lleno. Limpiar espacio en el disco duro puede resolver errores 500. Si el registro de acceso está habilitado en nginx, es mejor cerrar el registro de acceso cuando no sea necesario. El registro de acceso ocupa mucho espacio en el disco duro.

2. Error del archivo de configuración de nginx

Esto no se refiere a un error de sintaxis. Si nginx tiene un error de sintaxis en el archivo de configuración, lo avisará cuando se inicie. Al configurar la reescritura, pueden ocurrir errores 500 si algunas reglas no se manejan correctamente. Revise sus reglas de reescritura cuidadosamente. Si algunas variables en el archivo de configuración se configuran incorrectamente, también puede ocurrir un error 500, como hacer referencia a una variable sin valor.

3. Si no existe ninguno de los problemas anteriores, es posible que la cantidad de concurrencias simuladas sea demasiada y necesite ajustar la cantidad de configuraciones de concurrencia en nginx.conf.

La solución es:

1 Abra el archivo /etc/security/limits.conf y agregue dos oraciones

Copia el código de la siguiente manera: * soft nofile 65535 * hard nofile 65535

2 Abrir/ etc/nginx/nginx.conf

Agregue una línea debajo de Workers_processes

Copia el código de la siguiente manera: trabajador_rlimit_nofile 65535;

3 Reinicie nginx y vuelva a cargar la configuración

Copia el código de la siguiente manera:

kill -9 `ps -ef | grep php | grep -v grep | `

/usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 100 -u www-data -f /usr/bin/php-cgi

killall -HUP nginx

Después de reiniciar, miré el registro de errores de nginx y no encontré ningún error 500.

4. Puede ser un problema de la base de datos. No encontré ningún problema en el registro de nginx o php. Finalmente, descubrí que no se podía acceder a la base de datos. resuelto.

Para problemas como este, generalmente puedes ir directamente al proveedor del servidor para resolverlo o hacer preguntas, y ellos generalmente te ayudarán a resolverlo. Por ejemplo, encontré algunos problemas con "Little Bird Cloud". "Servidor que usé antes. ¡Pero su servicio de atención al cliente me ayudó a resolverlo! De hecho, ¡los fabricantes actuales son bastante buenos!