2011-10-07 13 views
9

im utilizando el código siguiente para http-proxy:Node-http-proxy dynamic routetable?

var httpProxy = require('http-proxy'); 

var options = { 
    router: { 
    'url1.com': '127.0.0.1:3000', 
    'url2.com': '127.0.0.1:3001' 
    } 
}; 

httpProxy.createServer(options).listen(80); 

Mi pregunta es, ¿Puedo actualizar dinámicamente el routetable? Sin cerrar el servidor proxy?

Thx por respuestas

Respuesta

15

Para todos los que enfrentan ese problema, finalmente obtuve la solución de la caja. Todo es posible, si pasas una cadena apuntando a un archivo, en lugar de pasar un objeto como arg. Daré un ejemplo y debería estar claro.

proxy.js:

var httpProxy = require('http-proxy'); 
var options = { router: 'table.json' }; 

httpProxy.createServer(options).listen(80); 

Como u ver aquí, paso table.json como opción de router. Así que mira dentro de ese archivo.

table.json:

{ 
    "router": 
    { 
     "domain1.com": "127.0.0.1:8080", 
     "domain2.com": "127.0.0.1:8001" 
    } 
} 

y esa es toda la magia. node-http-proxy controlará ese archivo y, si realiza algún cambio en él, actualizará su tabla de ruta automáticamente.

Saludos

+0

Y así es como se obtiene un servidor proxy en funcionamiento en 5 minutos. Encuentro NodeJS increíble. Ligero y simple. – Pijusn

0

sí, pero no con el ProxyTable. He documentado an alternative to http-proxy's ProxyTable called 'Switchboard' que hace lo que quieres que haga. Tendrá que reorganizar algunas de las características para inicializar correctamente las rutas de acceso y los destinos, pero debería ser una operación sencilla, y el objeto backendTable está disponible dinámicamente en tiempo de ejecución.