En este tema, aprenderemos cómo configurar NGINX para servir contenido estático, como archivos HTML, imágenes, CSS y JavaScript. Este es uno de los usos más comunes de NGINX y es fundamental para cualquier servidor web.
Conceptos Clave
- Contenido Estático: Archivos que no cambian con frecuencia y se sirven tal cual desde el servidor.
- Directiva
location: Utilizada para definir cómo NGINX debe manejar las solicitudes a diferentes rutas. - Raíz del Documento (
root): El directorio en el servidor donde se almacenan los archivos estáticos.
Configuración Básica
Paso 1: Estructura de Directorios
Primero, asegúrate de tener una estructura de directorios adecuada para tus archivos estáticos. Por ejemplo:
Paso 2: Configuración del Bloque server
Edita el archivo de configuración de NGINX, generalmente ubicado en /etc/nginx/nginx.conf o en un archivo específico del sitio en /etc/nginx/sites-available/.
server {
listen 80;
server_name example.com;
location / {
root /var/www/html;
index index.html;
}
location /images/ {
root /var/www/html;
}
location /css/ {
root /var/www/html;
}
}Explicación del Código
listen 80;: NGINX escuchará en el puerto 80 (HTTP).server_name example.com;: Define el nombre del servidor.location / { ... }: Configura la raíz del documento para la ruta/. La directivarootespecifica el directorio donde se encuentran los archivos estáticos.index index.html;: Define el archivo predeterminado que se servirá cuando se acceda a la raíz del sitio.location /images/ { ... }ylocation /css/ { ... }: Configura rutas específicas para servir imágenes y archivos CSS.
Paso 3: Recargar NGINX
Después de realizar cambios en la configuración, recarga NGINX para aplicar los cambios:
Ejemplo Práctico
Supongamos que tienes un archivo index.html en /var/www/html/ con el siguiente contenido:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Welcome to NGINX</title>
<link rel="stylesheet" href="/css/styles.css">
</head>
<body>
<h1>Welcome to NGINX</h1>
<img src="/images/logo.png" alt="Logo">
</body>
</html>Y un archivo CSS en /var/www/html/css/styles.css:
Con esta configuración, al acceder a http://example.com, NGINX servirá el archivo index.html, y los archivos CSS e imágenes se cargarán correctamente.
Ejercicio Práctico
Ejercicio 1: Configurar un Nuevo Sitio
- Crea una nueva estructura de directorios para un sitio web en
/var/www/mywebsite/. - Añade un archivo
index.htmlcon contenido básico. - Configura NGINX para servir este nuevo sitio en
http://mywebsite.local.
Solución
- Crear la estructura de directorios:
sudo mkdir -p /var/www/mywebsite echo "<h1>Welcome to My Website</h1>" | sudo tee /var/www/mywebsite/index.html
- Configurar NGINX:
server {
listen 80;
server_name mywebsite.local;
location / {
root /var/www/mywebsite;
index index.html;
}
}- Recargar NGINX:
- Añadir
mywebsite.locala tu archivo/etc/hostspara probar localmente:
Conclusión
En esta sección, hemos aprendido cómo configurar NGINX para servir contenido estático. Este es un paso fundamental para cualquier servidor web y sienta las bases para configuraciones más avanzadas. En el próximo tema, exploraremos cómo habilitar listados de directorios en NGINX.
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
