9Router: evaluar un gateway sin prometer acceso ilimitado
Arquitectura de 9Router: wrapper HTTP y rutas de modelos
Separe el límite de solicitudes inspeccionado de la selección de proveedores y conversiones no trazadas aquí.
Qué aprenderás
- Antes del handler Next
- Identidad y proxy
- Refresco separado
Antes de empezar
- Lectura básica de comandos y configuración
- Entorno de ensayo desechable y autorizado
Registre modelo solicitado, intentos y aceptación sin retener secretos ni automatizar cambios de cuenta.
Conclusiones clave
- El wrapper no explica todo el router.
- Loopback es condición explícita.
- Iniciar refresco no prueba éxito.
Antes del handler Next
custom-server.js envuelve http.createServer y añade un handler previo. Lee peer TCP y algunas cabeceras, elimina campos internos suministrados por el cliente y estampa metadatos derivados.
Este límite no es todo el router. El README describe traducción, fallback y compresión en la aplicación. No deducimos su orden exacto a partir de un dibujo de alto nivel.
Identidad y proxy
Solo confía en x-real-ip o la primera entrada x-forwarded-for si el peer TCP coincide con formas loopback explícitas. En otro caso usa socket. El proxy local debe proporcionar información limpia.
Un proxy en otro contenedor puede no aparecer como loopback. Compruebe la dirección real en vez de tratar toda red interna igual. La identidad derivada puede afectar diagnósticos y limitación posterior.
Refresco separado
Al escuchar, el wrapper intenta importar e iniciar refresco de tokens. Los comentarios explican que un standalone sin módulo fuente puede depender del bootstrap de aplicación. Importar no demuestra refrescar credenciales correctamente.
Registre admisión, destino y resultado upstream por separado. Inspeccionamos wrapper y scripts, no cada ejecutor, ruta de base de datos o implementación de renovación de credenciales.
Cómo elegir
| Criterio | Opción A | Opción B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Pasos de implementación
- 1
Siga wrapper antes del handler de aplicación.
- 2
Identifique peer TCP real del proxy.
- 3
Separe arranque, routing y refresco.
Ejemplo para copiar
TCP → wrapper → handler Next
peer y forwarding local confiable → metadatos
aplicación → ruta → resultado upstreamPreguntas frecuentes
¿Todo proxy interno es loopback?
No. Revise peer y comparaciones implementadas.
¿Verificaron todo fallback?
Su propósito general viene del README; el código analizado es el wrapper.
Fuentes
- 9Router / custom-server.jsFuente verificada 2026-09-18
- 9Router / package.jsonFuente verificada 2026-09-18
- 9Router / README.mdFuente verificada 2026-09-18