En esta sección, aprenderemos sobre el registro en NGINX, cómo configurar los registros y cómo personalizar los formatos de registro para adaptarlos a nuestras necesidades. Los registros son esenciales para monitorear y depurar el comportamiento de nuestro servidor web.
¿Qué es el Registro en NGINX?
El registro en NGINX se refiere a la captura de información sobre las solicitudes que maneja el servidor. NGINX proporciona dos tipos principales de registros:
- Registro de Acceso (Access Log): Captura información sobre cada solicitud HTTP que recibe el servidor.
- Registro de Errores (Error Log): Captura información sobre errores que ocurren mientras NGINX maneja las solicitudes.
Configuración del Registro de Acceso
El registro de acceso se configura en el archivo de configuración principal de NGINX (nginx.conf
) o en los archivos de configuración de los sitios individuales.
Ejemplo Básico de Configuración de Registro de Acceso
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
Explicación del Código
- log_format: Define un formato de registro personalizado llamado
main
. Los campos en el formato incluyen la dirección IP del cliente ($remote_addr
), el usuario remoto ($remote_user
), la hora de la solicitud ($time_local
), la solicitud en sí ($request
), el estado de la respuesta ($status
), los bytes enviados ($body_bytes_sent
), el referer HTTP ($http_referer
), el agente de usuario ($http_user_agent
) y cualquier dirección IP adicional ($http_x_forwarded_for
). - access_log: Especifica la ubicación del archivo de registro de acceso y el formato de registro a utilizar (
main
).
Configuración del Registro de Errores
El registro de errores se configura de manera similar al registro de acceso, pero se centra en capturar errores.
Ejemplo Básico de Configuración de Registro de Errores
http { error_log /var/log/nginx/error.log warn; server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
Explicación del Código
- error_log: Especifica la ubicación del archivo de registro de errores y el nivel de registro (
warn
). Los niveles de registro pueden serdebug
,info
,notice
,warn
,error
,crit
,alert
, yemerg
.
Personalización de Formatos de Registro
NGINX permite personalizar los formatos de registro para capturar información específica que puede ser útil para el monitoreo y la depuración.
Ejemplo de Formato de Registro Personalizado
http { log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '$request_time $upstream_response_time'; access_log /var/log/nginx/custom_access.log custom; server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
Explicación del Código
- log_format custom: Define un formato de registro personalizado llamado
custom
que incluye el tiempo total de la solicitud ($request_time
) y el tiempo de respuesta del upstream ($upstream_response_time
).
Ejercicio Práctico
Ejercicio 1: Configuración de Registro de Acceso
- Abre el archivo de configuración principal de NGINX (
nginx.conf
). - Define un formato de registro personalizado que incluya la dirección IP del cliente, la solicitud, el estado de la respuesta y el tiempo total de la solicitud.
- Configura el registro de acceso para usar este formato personalizado y guarda los registros en
/var/log/nginx/custom_access.log
.
Solución
http { log_format custom '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for" ' '$request_time'; access_log /var/log/nginx/custom_access.log custom; server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
Ejercicio 2: Configuración de Registro de Errores
- Abre el archivo de configuración principal de NGINX (
nginx.conf
). - Configura el registro de errores para que capture mensajes de nivel
error
y superiores. - Guarda los registros de errores en
/var/log/nginx/custom_error.log
.
Solución
http { error_log /var/log/nginx/custom_error.log error; server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } } }
Conclusión
En esta sección, hemos aprendido sobre la importancia del registro en NGINX, cómo configurar los registros de acceso y errores, y cómo personalizar los formatos de registro para capturar información específica. Los registros son una herramienta esencial para monitorear y depurar el comportamiento de nuestro servidor web. En la próxima sección, exploraremos cómo NGINX puede servir contenido estático de manera eficiente.
Curso de NGINX
Módulo 1: Introducción a NGINX
Módulo 2: NGINX como Servidor Web
- Sirviendo Contenido Estático
- Listados de Directorios
- Páginas de Error Personalizadas
- Registro y Formatos de Registro
Módulo 3: NGINX como Proxy Inverso
- Introducción al Proxy Inverso
- Configurando un Proxy Inverso
- Balanceo de Carga
- Verificaciones de Salud