Skip to content
IRC-CodingIRC-Coding
API GatewayReverse ProxyNginxKongLoad BalancingRoutingInfraestructura

API Gateway vs Reverse Proxy: diferencias y cuándo usarlos

Comparativa técnica entre API Gateway y Reverse Proxy. Diferencias arquitectónicas, funcionalidades, casos de uso con Nginx y Kong.

S

schutzgeist

12 min read
API Gateway vs Reverse Proxy: diferencias y cuándo usarlos

API Gateway vs. Reverse Proxy: Diferencias y casos de uso

API Gateway y Reverse Proxy suelen confundirse porque ambos se sitúan entre el cliente y el servidor, reenviando solicitudes. Sin embargo, resuelven problemas distintos en niveles de abstracción diferentes. Si no comprendes la diferencia, terminarás metiendo lógica innecesaria en la capa equivocada o renunciando a funcionalidades que realmente necesitas.

¿Qué es un Reverse Proxy?

Un Reverse Proxy es un servidor que se posiciona entre los clientes y uno o varios servidores backend, reenviando las solicitudes entrantes hacia esos servidores. Desde la perspectiva del cliente, el Reverse Proxy parece ser el servidor real; el cliente desconoce qué instancia backend está procesando realmente su solicitud.

El término “Reverse” tiene un significado específico: mientras que un Forward Proxy trabaja para el cliente y reenvía solicitudes hacia el exterior, el Reverse Proxy trabaja para el servidor y recibe solicitudes del exterior.

Funciones principales de un Reverse Proxy

  • Routing: Reenvía solicitudes a diferentes servidores backend según rutas URL u nombres de dominio
  • Load Balancing: Distribuye las solicitudes entre múltiples instancias backend (Round-Robin, Least-Connections, IP-Hash)
  • TLS Termination: Finaliza la conexión SSL/TLS en el proxy; el backend se comunica sin cifrado dentro de la red interna
  • Caching: Almacena en caché contenido estático o respuestas API
  • Compression: Comprime respuestas (gzip, brotli) antes de enviarlas al cliente
  • Rate Limiting: Aplicar límites simples de solicitudes por IP
  • Health Checks: Supervisa los servidores backend y los retira del pool si fallan

Soluciones de Reverse Proxy conocidas

  • Nginx: El Reverse Proxy más extendido, altamente performante y configurable
  • HAProxy: Especializado en Load Balancing, tanto a nivel TCP como HTTP
  • Apache con mod_proxy: Servidor web clásico con funcionalidad de proxy
  • Traefik: Reverse Proxy moderno, nativo para la nube, con Service Discovery automático
  • Caddy: Reverse Proxy fácil de configurar con TLS automático

¿Qué es un API Gateway?

Un API Gateway es una forma especializada del Reverse Proxy que ofrece funcionalidades adicionales específicas para API. Se sitúa en la entrada de la infraestructura de API y gestiona, protege y orquesta todo el tráfico de la API.

Mientras que un Reverse Proxy opera a nivel HTTP (rutas, nombres de dominio, headers), un API Gateway opera a nivel de API (endpoints, API-Keys, OAuth-Tokens, cuotas, versiones de API).

Funciones principales de un API Gateway (más allá del Reverse Proxy)

  • Autenticación y Autorización: OAuth 2.0, validación JWT, verificación de API-Key en cada endpoint
  • Rate Limiting específico de API: Cuotas por API-Key, por usuario, por endpoint, no solo por IP
  • Transformación Request/Response: Convierte payloads, añade headers, mapea versiones
  • Versionado de API: Enruta /v1/users y /v2/users a diferentes backends o versiones
  • Agregación de solicitudes: Combina múltiples llamadas backend en una única solicitud del cliente (composición de API)
  • Traducción de protocolos: REST a gRPC, SOAP a REST, WebSocket a HTTP
  • Analítica y monitoreo de API: Métricas detalladas por endpoint, por consumidor, por API
  • Integración con Developer Portal: Documentación de API, auto-registro, gestión de claves
  • Circuit Breaker: Devuelve automáticamente respuestas de error en caso de fallo backend, en lugar de esperar timeouts
  • Mocking: Simula endpoints para desarrollo y testing

Soluciones de API Gateway conocidas

  • Kong: API Gateway de código abierto con sistema de plugins, basado en Nginx/OpenResty
  • AWS API Gateway: Solución en la nube, profundamente integrada en el ecosistema AWS
  • Apigee: Gestión de API de Google Cloud, enfoque empresarial
  • Tyk: Código abierto, ligero, basado en Go
  • KrakenD: API Gateway de alto rendimiento con enfoque en agregación
  • Azure API Management: Solución en la nube de Microsoft con Developer Portal

La diferencia esencial

La distinción se puede reducir a una fórmula:

Reverse Proxy = Capa de infraestructura (HTTP, TCP, Routing, Load Balancing) API Gateway = Capa de API (Endpoints, Autenticación, Cuotas, Transformación, Analítica)

Un Reverse Proxy se pregunta: ¿Cuál servidor debería procesar esta solicitud? Un API Gateway se pregunta: ¿Está autorizado este cliente para llamar a este endpoint, y cuánta cuota le queda hoy?

Tabla comparativa

CaracterísticaReverse ProxyAPI Gateway
Nivel de abstracciónHTTP/TCPAPI/Endpoint
Load BalancingSí (heredado)
TLS TerminationSí (heredado)
CachingSí (extendido)
AutenticaciónBásica (basada en IP)OAuth, JWT, API-Key
Rate LimitingPor IPPor token, por usuario, por endpoint
Transformación de solicitudesReescritura de headersTransformación de payload, traducción de protocolos
Versionado de APINo
Agregación de solicitudesNo
Circuit BreakerParcialmente
AnalíticaLogs de accesoMétricas de API por consumidor
Developer PortalNo
Sistema de pluginsLimitado

¿Quién usa qué?

  • Reverse Proxy: Administradores de sistemas, ingenieros DevOps que necesitan distribuir tráfico y centralizar TLS
  • API Gateway: Equipos de API, equipos de plataforma que necesitan gestionar, asegurar y monetizar APIs

¿Por qué es importante este tema en informática y exámenes?

En exámenes de arquitectura y certificaciones (AWS Solutions Architect, Azure API Management) regularmente se pregunta sobre la diferencia. En la práctica, la falta de conocimiento lleva a errores arquitectónicos: la lógica de autenticación se coloca en Reverse Proxies (donde no pertenece), o los API Gateways se utilizan como simples balanceadores de carga (desperdicio de funcionalidad). La asignación correcta de responsabilidades es un signo de madurez arquitectónica.

¿Por qué es importante este tema en la práctica?

Escenario 1: Arquitectura de Microservicios

En una arquitectura de microservicios con 20 servicios necesitas ambos: el Reverse Proxy (por ejemplo, Nginx/Envoy) para Load Balancing y TLS dentro del cluster, y el API Gateway (por ejemplo, Kong) como entrada pública para clientes externos con autenticación, cuotas y versionado.

Escenario 2: Monolito con API

Un único servidor backend con una API REST a menudo solo necesita un Reverse Proxy (Nginx) para TLS y caching. Un API Gateway sería sobre-ingeniería.

Escenario 3: Plataforma multi-cliente

Una plataforma con aplicación web, aplicación móvil y clientes B2B API necesita un API Gateway, porque cada tipo de cliente tiene diferentes métodos de autenticación, cuotas y campos requeridos. Un Reverse Proxy aquí no es suficiente.

Ejemplo práctico: Nginx como Reverse Proxy vs. Kong como API Gateway

Este ejemplo muestra el mismo requisito (asegurar un endpoint /users) tanto con Nginx como Reverse Proxy como con Kong como API Gateway. La comparación ilustra la diferencia en nivel de abstracción y funcionalidad.

Nginx como Reverse Proxy

# nginx.conf — Configuración de Reverse Proxy
# Reenvía solicitudes a servidores backend, con TLS y Rate Limiting

upstream backend {
    server 10.0.0.1:3000;
    server 10.0.0.2:3000;
    # Load Balancing: Round-Robin (por defecto)
    # Least-Connections: least_conn;
    # IP-Hash (Session-Stickiness): ip_hash;
}

# Zona de Rate Limiting: 10 solicitudes por segundo por IP
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;

server {
    listen 443 ssl;
    server_name api.example.com;

    # TLS Termination
    ssl_certificate /etc/ssl/certs/api.crt;
    ssl_certificate_key /etc/ssl/private/api.key;
    ssl_protocols TLSv1.2 TLSv1.3;

    # /users -> Backend
    location /users {
        limit_req zone=api burst=20 nodelay;
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    # /orders -> otro servidor backend
    location /orders {
        limit_req zone=api burst=20 nodelay;
        proxy_pass http://10.0.0.3:3001;
        proxy_set_header Host $host;
    }

    # Endpoint de Health Check
    location /health {
        return 200 "OK";
        add_header Content-Type text/plain;
    }
}

Kong como API Gateway

# kong.yml — Configuración declarativa
# Define servicios, rutas y plugins (autenticación, rate limiting, análisis)

services:
  - name: user-service
    url: http://10.0.0.1:3000
    routes:
      - name: users-route
        paths:
          - /users
        methods:
          - GET
          - POST
          - PUT
          - DELETE
        # Versionado de API mediante headers
        strip_path: false

  - name: order-service
    url: http://10.0.0.3:3001
    routes:
      - name: orders-route
        paths:
          - /orders
        methods:
          - GET
          - POST

plugins:
  # Autenticación JWT para todas las rutas
  - name: jwt
    config:
      secret_is_base64: false
      run_on_preflight: true

  # Rate limiting por consumidor (no solo por IP)
  - name: rate-limiting
    config:
      minute: 100
      hour: 1000
      policy: redis
      redis_host: redis.internal
      limit_by: consumer
      fault_tolerant: true

  # Configuración CORS
  - name: cors
    config:
      origins:
        - https://app.example.com
      methods:
        - GET
        - POST
        - PUT
        - DELETE
      headers:
        - Authorization
        - Content-Type
      credentials: true

  # Métricas de Prometheus para análisis de API
  - name: prometheus
    config:
      per_consumer: true

consumers:
  - username: mobile-app
    jwt_secrets:
      - key: mobile-app-key
        secret: mobile-app-secret-2026
  - username: web-app
    jwt_secrets:
      - key: web-app-key
        secret: web-app-secret-2026

La diferencia es evidente: Nginx configura enrutamiento HTTP y rate limiting basado en IP. Kong configura enrutamiento de API con autenticación JWT, rate limiting por consumidor, CORS y métricas, todo de forma declarativa y por endpoint de API.

Información detallada

¿Puede un API Gateway reemplazar un Reverse Proxy?

Sí y no. Un API Gateway como Kong a menudo se basa en un Reverse Proxy (Kong utiliza Nginx/OpenResty internamente). Ofrece todas las funciones de Reverse Proxy más capacidades de API. En muchas arquitecturas, el API Gateway reemplaza el Reverse Proxy para el tráfico externo. Internamente, entre microservicios, suele permanecer activo un Reverse Proxy separado o un Service Mesh (Envoy, Linkerd).

¿Cuándo es suficiente un Reverse Proxy?

  • Una única API o monolito
  • Pocos endpoints, sin versionado de API
  • Autenticación implementada en el backend (sin necesidad de autenticación centralizada)
  • Sin cuotas diferenciadas por cliente
  • Equipo pequeño e infraestructura limitada

¿Cuándo necesitas un API Gateway?

  • Múltiples APIs o microservicios tras un único punto de entrada
  • Autenticación centralizada (OAuth, JWT) para todas las APIs
  • Cuotas y rate limits diferenciados por cliente/API
  • Versionado y migración de API
  • Agregación de solicitudes (una llamada del cliente a múltiples llamadas del backend)
  • Análisis de API y monetización
  • Developer Portal para autoservicio

Reverse Proxy vs. Load Balancer vs. API Gateway

Estos tres términos se confunden frecuentemente:

  • Load Balancer: Distribuye tráfico en múltiples servidores (Layer 4, TCP/UDP). Enfoque: disponibilidad. Ejemplos: HAProxy, AWS ALB.
  • Reverse Proxy: Reenvía solicitudes HTTP, TLS, caching (Layer 7). Enfoque: infraestructura. Ejemplos: Nginx, Caddy.
  • API Gateway: Reverse Proxy con funciones de API Management. Enfoque: gobierno de API. Ejemplos: Kong, AWS API Gateway.

Un Load Balancer puede ser parte de un Reverse Proxy. Un Reverse Proxy puede ser parte de un API Gateway. El nivel de abstracción aumenta desde LB pasando por RP hasta AG.

Service Mesh vs. API Gateway

Un Service Mesh (Istio, Linkerd) gestiona la comunicación entre microservicios (internamente), mientras que un API Gateway gestiona el tráfico externo. En arquitecturas modernas coexisten ambos: API Gateway externamente, Service Mesh internamente. Envoy puede asumir ambos roles.

Preguntas frecuentes: API Gateway vs. Reverse Proxy

1. ¿Cuál es la diferencia principal entre API Gateway y Reverse Proxy?

Un Reverse Proxy opera a nivel de infraestructura HTTP (enrutamiento, balanceo de carga, TLS, caching). Un API Gateway opera a nivel de API y ofrece además autenticación, autorización, cuotas por consumidor, transformación de solicitudes, versionado de API y análisis. El API Gateway es un Reverse Proxy especializado con funciones de API Management.

2. ¿Se puede usar Nginx como API Gateway?

Nginx por sí solo es un Reverse Proxy. Con OpenResty (extensiones Lua) o Nginx Plus se pueden agregar funciones de API Gateway. Kong se basa en Nginx/OpenResty y lo extiende a un API Gateway completo con sistema de plugins.

3. ¿Se necesitan ambos: Reverse Proxy y API Gateway?

En arquitecturas complejas, sí. El API Gateway gestiona el tráfico de API externo con autenticación y cuotas. Internamente entre microservicios puede utilizarse un Reverse Proxy o Service Mesh para balanceo de carga y TLS. En configuraciones más simples, el API Gateway puede asumir ambos roles.

4. ¿Cuál es el coste de un API Gateway comparado con un Reverse Proxy?

Los Reverse Proxies de código abierto (Nginx, HAProxy) son gratuitos. Los API Gateways de código abierto (Kong, Tyk) también, pero las versiones empresariales con soporte, análisis y Developer Portal tienen costes de licencia. Los API Gateways en la nube (AWS, Azure) se facturan por millones de llamadas. El esfuerzo operativo de un API Gateway es mayor debido a la complejidad de configuración.

5. ¿Qué es TLS Termination?

TLS Termination significa que el Reverse Proxy o API Gateway acepta la conexión HTTPS cifrada del cliente y realiza el descifrado. El reenvío al backend se realiza sin cifrar (HTTP) en la red interna. Esto reduce la carga de cálculo TLS en los servidores backend y centraliza la gestión de certificados.

6. ¿Qué es la agregación de solicitudes en el API Gateway?

La agregación de solicitudes (o API Composition) significa que el API Gateway divide una única solicitud del cliente en múltiples solicitudes del backend, recopila los resultados y los devuelve como una única respuesta. Reduce la cantidad de viajes de ida y vuelta cliente-servidor, especialmente útil para clientes móviles con ancho de banda limitado.

7. ¿Cuál es la diferencia entre Load Balancer y Reverse Proxy?

Un Load Balancer distribuye tráfico en múltiples servidores, típicamente en Layer 4 (TCP/UDP), con enfoque en disponibilidad. Un Reverse Proxy opera en Layer 7 (HTTP) y ofrece además enrutamiento, TLS, caching y manipulación de headers. Un Reverse Proxy puede incluir balanceo de carga, pero un Load Balancer no ofrece funciones a nivel HTTP.

8. ¿Qué es un Circuit Breaker en el API Gateway?

Un Circuit Breaker es un patrón en el que el API Gateway interrumpe la conexión con un servicio backend cuando hay fallos repetidos (estado Open) y devuelve inmediatamente una respuesta de error, en lugar de esperar un timeout. Tras un período de espera (Half-Open) se intenta de nuevo una solicitud. Esto evita fallos en cascada.

9. ¿Qué es Protocol Translation en el API Gateway?

Protocol Translation significa que el API Gateway convierte un protocolo entrante en otro. Por ejemplo, solicitudes REST de clientes externos se reenvían internamente como gRPC a los microservicios. Permite que clientes externos usen REST mientras internamente se utilizan protocolos más eficientes.

10. ¿Cuándo no deberías usar un API Gateway?

Con una única API con pocos endpoints, si la autenticación ya está implementada en el backend, no se necesitan cuotas diferenciadas por cliente y el equipo es pequeño. En este caso es suficiente un Reverse Proxy como Nginx. Un API Gateway sería excesivo e incrementaría innecesariamente la complejidad operativa.

11. ¿Qué es un Service Mesh y cómo se diferencia del API Gateway?

Un Service Mesh (Istio, Linkerd) gestiona la comunicación interna entre microservicios con proxies sidecar. Ofrece mTLS, reintentos, Circuit Breaking y tracing dentro del cluster. Un API Gateway gestiona el tráfico externo. En arquitecturas modernas coexisten ambos: API Gateway externamente, Service Mesh internamente.

12. ¿Qué es el versionado de API en el Gateway?

El versionado de API en el Gateway significa que el Gateway enruta diferentes versiones de API (por ejemplo, /v1/users y /v2/users) a diferentes servicios backend o versiones. Facilita migraciones: v1 permanece para clientes existentes, v2 lo utilizan nuevos clientes. El Gateway gestiona la transición sin cambios en el backend.

13. ¿Cómo se diferencia el rate limiting en Reverse Proxy del API Gateway?

Un Reverse Proxy típicamente limita por dirección IP (por ejemplo, 10 solicitudes/segundo por IP). Un API Gateway puede limitar por API-Key, por consumidor, por endpoint y por ventana de tiempo. Es más granular: una empresa con 1000 IPs pero una única API-Key se puede limitar efectivamente.

14. ¿Qué es un Developer Portal en el API Gateway?

Un Developer Portal es una interfaz web donde los consumidores de API pueden registrarse, generar API-Keys, leer documentación (OpenAPI/Swagger), ver sus cuotas y probar APIs. Permite autoservicio y reduce la carga administrativa del equipo de API.

15. ¿Puede un API Gateway convertirse en un punto único de fallo?

Sí, si el API Gateway falla, toda la API es inaccesible. Por eso debe operarse de forma altamente disponible: múltiples instancias tras un Load Balancer, health checks, failover automático y backups de la configuración del Gateway. En entornos en la nube, el proveedor se encarga de la HA (por ejemplo, AWS API Gateway).

Continúa tu aprendizaje en APIs

El siguiente artículo aborda API Gateway Sicherheit — cómo configurar centralmente la autenticación, rate limiting y protección contra amenazas en tu API Gateway.

Referencias y recursos adicionales

  1. https://nginx.org/en/docs/
  2. https://docs.konghq.com/
  3. https://learn.microsoft.com/en-us/azure/api-management/
  4. https://docs.aws.amazon.com/apigateway/
  5. https://www.martinfowler.com/articles/richardson-maturity-model.html

Libros recomendados para desarrollo de APIs

Keine Bücher für Kategorie "api-development" gefunden.

Volver al blog
Share:

Entradas relacionadas