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:
- 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.
- 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.
- 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).
- Caché: Almacenamiento en caché de recursos estáticos y dinámicos para reducir la carga en los backend y acelerar la respuesta.
- 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.
- 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.
- 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.
- 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;
}
}