Dev.to WebDev 🛠 Dev 👁 1 📖 1 min read

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

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

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

app.localhost -> 127.0.0.1:9001
api.localhost -> 127.0.0.1:9002

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.

📰 Read the original article on Dev.to WebDev

Originally published by Dev.to WebDev. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.