Androide

Configurar el error nginx y el registro de acceso

Parte 5 (nginx.conf) Deploy y configuración de server VULTR para Wordpress y Laravel 5

Parte 5 (nginx.conf) Deploy y configuración de server VULTR para Wordpress y Laravel 5

Tabla de contenido:

Anonim

Nginx es un servidor de proxy abierto y HTTP de código abierto y alto rendimiento responsable de manejar la carga de algunos de los sitios más grandes en Internet. Al administrar servidores web NGINX, una de las tareas más frecuentes que realizará es verificar los archivos de registro.

Saber cómo configurar y leer los registros es muy útil cuando se solucionan problemas del servidor o la aplicación, ya que proporcionan información de depuración detallada.

Nginx escribe registros de sus eventos en dos tipos de registros: registros de acceso y registros de errores. Los registros de acceso escriben información sobre las solicitudes de los clientes, y los registros de errores escriben información sobre el servidor y los problemas de la aplicación.

Este artículo describe cómo configurar y leer los registros de acceso y error de Nginx.

Configurar el registro de acceso

Cada vez que se procesa una solicitud de cliente, Nginx genera un nuevo evento en el registro de acceso. Cada registro de evento contiene una marca de tiempo e incluye información diversa sobre el cliente y el recurso solicitado. Los registros de acceso pueden mostrarle la ubicación de los visitantes, la página que visitan, cuánto tiempo pasan en la página y mucho más.

La directiva log_format permite definir el formato de los mensajes registrados. La directiva access_log habilita y establece la ubicación del archivo de registro y el formato utilizado.

La sintaxis más básica de la directiva access_log es la siguiente:

access_log log_file log_format;

Donde log_file es la ruta completa al archivo de registro, y log_format es el formato utilizado por el archivo de registro.

El registro de acceso se puede habilitar en http , server o bloque de directivas de location .

Por defecto, el registro de acceso está habilitado globalmente en la directiva http dentro del archivo de configuración principal de Nginx.

/etc/nginx/nginx.conf

http {… access_log /var/log/nginx/access.log;… }

Para una mejor mantenibilidad, se recomienda establecer un archivo de registro de acceso separado para cada bloque de servidor. La directiva access_log establecida en la directiva del server anula la establecida en la directiva http (nivel superior).

/etc/nginx/conf.d/domain.com.conf

http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }

Si no se especifica ningún formato de registro, Nginx usa el formato combinado predefinido que se ve así:

log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';

Para cambiar el formato de registro, anule la configuración predeterminada o defina una nueva. Por ejemplo, para definir un nuevo formato de registro denominado main que ampliará el formato combinado con el valor que muestra el encabezado X-Forwarded-For agregue la siguiente definición en la directiva http o del server :

log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';

Para usar el nuevo formato, especifique su nombre después del archivo de registro como se muestra a continuación:

access_log /var/log/nginx/access.log custom;

Mientras que el registro de acceso proporciona información muy útil. ocupa espacio en disco y puede afectar el rendimiento del servidor. Si su servidor tiene pocos recursos y tiene un sitio web ocupado, puede deshabilitar el registro de acceso. Para hacer eso, establezca el valor de la directiva access_log en off :

access_log off;

Configurar el registro de errores

Nginx escribe mensajes sobre la aplicación y los errores generales del servidor en el archivo de registro de errores. Si experimenta errores en su aplicación web, el registro de errores es el primer lugar para comenzar a solucionar problemas.

La directiva error_log habilita y establece la ubicación y el nivel de gravedad del registro de errores. Toma la siguiente forma y se puede configurar dentro de un bloque http , server o location :

error_log log_file log_level

El parámetro log_level establece el nivel de registro. A continuación se detallan los niveles según su gravedad (de menor a mayor):

  • debug : depuración de mensajes. info : mensajes informativos. notice - Avisos. warn - Advertencias. error : errores al procesar una solicitud. crit - Problemas críticos. Requiere una acción rápida. alert - Alertas. Se deben tomar medidas de inmediato. emerg - Situación de emergencia. El sistema está en un estado inutilizable.

Cada nivel de registro incluye los niveles más altos. Por ejemplo, si configura el nivel de registro para warn , Nginx también registrará los mensajes de error , crit , alert y emerg .

Cuando no se especifica el parámetro log_level , el valor predeterminado es error .

Por defecto, la directiva error_log se define en la directiva http dentro del archivo principal nginx.conf:

/etc/nginx/nginx.conf

http {… error_log /var/log/nginx/error.log;… }

Al igual que con los registros de acceso, se recomienda establecer un archivo de registro de errores separado para cada bloque de servidor, que anula la configuración heredada de los niveles superiores.

Por ejemplo, para configurar el registro de errores de domain.com para warn que usaría:

http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }

Siempre que modifique el archivo de configuración, debe reiniciar el servicio Nginx para que los cambios surtan efecto.

Ubicación de los archivos de registro

De manera predeterminada en la mayoría de las distribuciones de Linux, como Ubuntu, CentOS y Debian, los registros de acceso y error se encuentran en el directorio /var/log/nginx .

Lectura y comprensión de los archivos de registro de Nginx

Puede abrir y analizar los archivos de registro utilizando comandos estándar como cat , less , grep , cut , awk , etc.

Aquí hay un ejemplo de registro del archivo de registro de acceso que utiliza el formato de registro combinado de Nginx predeterminado:

192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"

Analicemos qué significa cada campo del registro:

  • $remote_addr - 192.168.33.1 - La dirección IP del cliente que realiza la solicitud. $remote_user - - - Usuario autenticado HTTP. Cuando el nombre de usuario no está configurado, este campo muestra - . - - Hora del servidor local. "$request" - "GET / - El tipo de solicitud, ruta y protocolo. $status - 200 - El código de respuesta del servidor. $body_bytes_sent - 396 - El tamaño de la respuesta del servidor en bytes. "$http_referer" - "-" - La URL de la referencia. "$http_user_agent" - Mozilla/5.0… - El agente de usuario del cliente (navegador web).

Use el comando tail para ver el archivo de registro en tiempo real:

tail -f access.log

Conclusión

Los archivos de registro le proporcionan información útil sobre problemas del servidor y cómo los visitantes interactúan con su sitio web.

Nginx le permite configurar los registros de acceso y error de acuerdo a sus necesidades.

nginx