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

  1. Servidor Web: NGINX puede servir contenido estático (como HTML, imágenes, videos) de manera rápida y eficiente.
  2. Proxy Inverso: NGINX puede actuar como intermediario entre los clientes y los servidores backend, mejorando la seguridad y el rendimiento.
  3. Balanceo de Carga: Distribuye el tráfico entrante entre varios servidores backend para mejorar la disponibilidad y la capacidad de respuesta.
  4. Caché: Almacena en caché las respuestas de los servidores backend para reducir la carga y mejorar los tiempos de respuesta.
  5. Soporte para HTTP/2 y gRPC: Mejora la eficiencia de la comunicación entre el cliente y el servidor.
  6. 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
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

  1. Objetivo: Configurar NGINX para servir una página HTML simple.
  2. 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

  1. Instalación de NGINX (en sistemas basados en Debian/Ubuntu):

    sudo apt update
    sudo apt install nginx
    
  2. 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>
    
  3. 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;
        }
    }
    
  4. 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.

© Copyright 2024. Todos los derechos reservados