En este tema, aprenderemos cómo configurar páginas de error personalizadas en NGINX. Las páginas de error personalizadas son útiles para proporcionar una mejor experiencia de usuario cuando ocurren errores en el servidor, como el famoso "404 Not Found" o "500 Internal Server Error".

Conceptos Clave

  1. Códigos de Estado HTTP: Son códigos de respuesta estándar dados por los servidores web en respuesta a una solicitud del cliente. Ejemplos comunes incluyen 404, 500, 502, etc.
  2. Directiva error_page: Es la directiva de configuración en NGINX que se utiliza para definir páginas de error personalizadas.

Configuración de Páginas de Error Personalizadas

Paso 1: Crear las Páginas de Error Personalizadas

Primero, necesitamos crear las páginas HTML que se mostrarán cuando ocurra un error. Por ejemplo, podemos crear una página 404.html y una 500.html.

<!-- /usr/share/nginx/html/404.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>404 Not Found</title>
</head>
<body>
    <h1>404 Not Found</h1>
    <p>Lo sentimos, la página que estás buscando no se pudo encontrar.</p>
</body>
</html>
<!-- /usr/share/nginx/html/500.html -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>500 Internal Server Error</title>
</head>
<body>
    <h1>500 Internal Server Error</h1>
    <p>Lo sentimos, algo salió mal en nuestro servidor.</p>
</body>
</html>

Paso 2: Configurar NGINX para Usar las Páginas de Error Personalizadas

Edita el archivo de configuración de NGINX, generalmente ubicado en /etc/nginx/nginx.conf o en un archivo de configuración de sitio específico en /etc/nginx/sites-available/.

Añade las siguientes directivas dentro del bloque server:

server {
    listen 80;
    server_name tu_dominio.com;

    # Otras configuraciones...

    # Configuración de páginas de error personalizadas
    error_page 404 /404.html;
    location = /404.html {
        root /usr/share/nginx/html;
        internal;
    }

    error_page 500 502 503 504 /500.html;
    location = /500.html {
        root /usr/share/nginx/html;
        internal;
    }
}

Explicación del Código

  • error_page 404 /404.html;: Esta directiva le dice a NGINX que use la página 404.html cuando ocurra un error 404.
  • location = /404.html { ... }: Este bloque de configuración define cómo servir la página 404.html. La directiva root especifica el directorio donde se encuentra la página. La directiva internal asegura que la página de error no sea accesible directamente desde el exterior.
  • error_page 500 502 503 504 /500.html;: Similar a la configuración anterior, pero para errores 500, 502, 503 y 504.

Paso 3: Recargar la Configuración de NGINX

Después de realizar los cambios en el archivo de configuración, recarga NGINX para aplicar los cambios:

sudo nginx -s reload

Ejercicio Práctico

Ejercicio 1: Configurar una Página de Error 403 Personalizada

  1. Crea una página 403.html en el directorio /usr/share/nginx/html con el siguiente contenido:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>403 Forbidden</title>
</head>
<body>
    <h1>403 Forbidden</h1>
    <p>No tienes permiso para acceder a este recurso.</p>
</body>
</html>
  1. Edita el archivo de configuración de NGINX para incluir la página de error 403:
server {
    listen 80;
    server_name tu_dominio.com;

    # Otras configuraciones...

    # Configuración de página de error 403 personalizada
    error_page 403 /403.html;
    location = /403.html {
        root /usr/share/nginx/html;
        internal;
    }
}
  1. Recarga la configuración de NGINX:
sudo nginx -s reload

Solución

Si has seguido los pasos correctamente, ahora deberías tener una página de error 403 personalizada que se muestra cuando se produce un error 403.

Conclusión

En esta sección, hemos aprendido cómo configurar páginas de error personalizadas en NGINX. Esto no solo mejora la experiencia del usuario, sino que también puede proporcionar información útil y enlaces de navegación cuando algo sale mal. En el próximo tema, exploraremos cómo registrar y formatear los registros en NGINX para un mejor monitoreo y análisis.

© Copyright 2024. Todos los derechos reservados