DEV Community

Tu codigo cotidiano
Tu codigo cotidiano

Posted on

Reverse proxy mínimo en Rust: enrutar tráfico por Host

Reverse proxy mínimo en Rust: enrutar tráfico por Host

Publiqué un nuevo tutorial en TuCodigoCotidiano donde construimos un reverse proxy mínimo en Rust usando únicamente la librería estándar.

La idea del tutorial es simple, pero poderosa:

Un reverse proxy no solo reenvía tráfico: también decide a dónde debe ir.

En el proyecto, el proxy escucha en:

127.0.0.1:8080
Enter fullscreen mode Exit fullscreen mode

Y enruta cada petición según el header Host:

app.localhost -> 127.0.0.1:9001
api.localhost -> 127.0.0.1:9002
Enter fullscreen mode Exit fullscreen mode

Qué vas a aprender

En el tutorial construimos paso a paso un proxy que:

  • escucha conexiones TCP con TcpListener;
  • lee peticiones HTTP desde un TcpStream;
  • extrae y normaliza el header Host;
  • decide el upstream correcto;
  • reescribe headers como Host, Connection, X-Forwarded-For y X-Forwarded-Proto;
  • responde 400 Bad Request cuando falta Host;
  • responde 404 Not Found cuando no existe una ruta;
  • responde 502 Bad Gateway cuando el upstream está apagado;
  • maneja varias conexiones usando threads;
  • incluye pruebas con curl.exe y tests unitarios.

Por qué hice este tutorial

Muchas veces usamos herramientas como NGINX, Caddy, Traefik o HAProxy, pero no siempre entendemos qué pasa por dentro.

Este proyecto no busca reemplazarlas. La meta es aprender la idea central:

Leer una petición, entender a qué servicio va dirigida y reenviarla al destino correcto.

Tutorial completo

Puedes leerlo aquí:

https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/reverse-proxy-minimo-en-rust-enrutar-trafico-por-host/

Si estás aprendiendo Rust, HTTP, backend, redes o DevOps, este proyecto te puede ayudar a conectar teoría con práctica.

Top comments (0)