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 ser debug, info, notice, warn, error, crit, alert, y emerg.

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

  1. Abre el archivo de configuración principal de NGINX (nginx.conf).
  2. 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.
  3. 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

  1. Abre el archivo de configuración principal de NGINX (nginx.conf).
  2. Configura el registro de errores para que capture mensajes de nivel error y superiores.
  3. 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.

© Copyright 2024. Todos los derechos reservados