Sobes.tech
Junior

¿Para qué se utiliza Nginx?

sobes.tech AI

Respuesta de la IA

Nginx es un servidor web asíncrono de alto rendimiento y proxy inverso, utilizado para:

  1. Servicio de archivos estáticos: Entrega rápida y eficiente de HTML, CSS, JavaScript, imágenes y otros recursos estáticos. Gracias a su arquitectura asíncrona, puede manejar una gran cantidad de conexiones simultáneas con bajo consumo de recursos.
  2. Proxy inverso: Transmisión de solicitudes de clientes a uno o varios servidores backend (aplicaciones, API) y devolución de respuestas a los clientes. Esto permite balancear la carga, mejorar la seguridad (ocultando la estructura interna de la red), realizar terminación SSL.
  3. Balanceo de carga: Distribución de solicitudes entrantes entre varios servidores para aumentar la disponibilidad y escalabilidad de la aplicación. Soporta diferentes algoritmos de balanceo (por ejemplo, round robin, menos conexiones).
  4. Caché: Almacenamiento en caché de recursos estáticos y dinámicos para reducir la carga en los backend y acelerar la respuesta.
  5. Terminación SSL/TLS: Descifrado del tráfico HTTPS antes de enviarlo al backend, lo que reduce la carga en los servidores de aplicaciones y permite gestionar certificados de forma centralizada.
  6. Compresión: Compresión de datos (por ejemplo, Gzip) antes de enviarlos al cliente para reducir el tráfico y acelerar la carga de páginas.
  7. Limitación de velocidad de solicitudes: Protección de los backend contra sobrecargas mediante la limitación del número de solicitudes de un cliente en un período de tiempo determinado.
  8. Firewall web (WAF): Protección básica contra ataques web comunes (por ejemplo, inyecciones SQL, XSS).
# Ejemplo de configuración de Nginx para servir archivos estáticos y proxy de API

server {
    listen 80;
    server_name example.com; # Nombre de dominio

    location / {
        root /var/www/html; # Ruta a archivos estáticos
        index index.html;
    }

    location /api/ {
        proxy_pass http://backend_server:8080; # Proxy de solicitudes a API a otro servidor
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}