Introducción
NGINX es un servidor web de alto rendimiento que también puede funcionar como un proxy inverso, balanceador de carga, y más. Fue creado por Igor Sysoev y lanzado por primera vez en 2004. Su diseño se centra en la alta concurrencia, lo que lo hace ideal para manejar grandes volúmenes de tráfico con eficiencia.
Características Clave de NGINX
- Servidor Web: NGINX puede servir contenido estático (como HTML, imágenes, videos) de manera rápida y eficiente.
- Proxy Inverso: NGINX puede actuar como intermediario entre los clientes y los servidores backend, mejorando la seguridad y el rendimiento.
- Balanceo de Carga: Distribuye el tráfico entrante entre varios servidores backend para mejorar la disponibilidad y la capacidad de respuesta.
- Caché: Almacena en caché las respuestas de los servidores backend para reducir la carga y mejorar los tiempos de respuesta.
- Soporte para HTTP/2 y gRPC: Mejora la eficiencia de la comunicación entre el cliente y el servidor.
- Configuración Modular: Permite la adición de módulos para extender su funcionalidad.
Comparación con Otros Servidores Web
Característica | NGINX | Apache HTTP Server | Microsoft IIS |
---|---|---|---|
Rendimiento | Alto | Medio | Medio |
Concurrencia | Excelente | Buena | Buena |
Configuración | Archivos de texto | Archivos de texto | GUI y archivos de texto |
Soporte de Módulos | Sí | Sí | Sí |
Uso de Recursos | Bajo | Medio | Medio |
Popularidad | Alta | Alta | Media |
Ejemplo Práctico: Configuración Básica de NGINX
A continuación, se muestra un ejemplo básico de configuración de NGINX para servir contenido estático:
server { listen 80; server_name example.com; location / { root /usr/share/nginx/html; index index.html index.htm; } }
Explicación del Código
listen 80;
: Indica que el servidor escuchará en el puerto 80 (HTTP).server_name example.com;
: Define el nombre del servidor.location / { ... }
: Configura la raíz del documento y el archivo de índice para las solicitudes al servidor.
Ejercicio Práctico
Ejercicio 1: Configuración Básica
- Objetivo: Configurar NGINX para servir una página HTML simple.
- Pasos:
- Instala NGINX en tu sistema (veremos esto en detalle en el siguiente tema).
- Crea un archivo HTML simple en
/usr/share/nginx/html/index.html
. - Configura NGINX para servir este archivo.
Solución
-
Instalación de NGINX (en sistemas basados en Debian/Ubuntu):
sudo apt update sudo apt install nginx
-
Creación del archivo HTML:
<!-- /usr/share/nginx/html/index.html --> <!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> </head> <body> <h1>Welcome to NGINX!</h1> </body> </html>
-
Configuración de NGINX:
- Edita el archivo de configuración principal de NGINX (generalmente ubicado en
/etc/nginx/sites-available/default
):
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } }
- Edita el archivo de configuración principal de NGINX (generalmente ubicado en
-
Reinicia NGINX para aplicar los cambios:
sudo systemctl restart nginx
Retroalimentación y Consejos
- Error Común: Asegúrate de que el archivo de configuración de NGINX no contenga errores de sintaxis. Puedes verificar la configuración con
sudo nginx -t
. - Consejo: Utiliza
systemctl status nginx
para verificar el estado del servicio NGINX y solucionar problemas si no se inicia correctamente.
Conclusión
En esta lección, hemos aprendido qué es NGINX, sus características clave y cómo se compara con otros servidores web. También hemos visto un ejemplo práctico de configuración básica y realizado un ejercicio para reforzar los conceptos aprendidos. En el próximo tema, abordaremos la instalación de NGINX en diferentes sistemas operativos.
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