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
- 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.
- 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ágina404.html
cuando ocurra un error 404.location = /404.html { ... }
: Este bloque de configuración define cómo servir la página404.html
. La directivaroot
especifica el directorio donde se encuentra la página. La directivainternal
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:
Ejercicio Práctico
Ejercicio 1: Configurar una Página de Error 403 Personalizada
- 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>
- 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; } }
- Recarga la configuración de NGINX:
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.
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