2010-02-06 3 views
3

Notre société a un projet qui utilise actuellement nginx comme proxy inverse pour servir le contenu statique et prendre en charge les connexions de comètes. Nous utilisons de longues connexions d'interrogation pour se débarrasser des demandes d'actualisation constantes et permettre aux utilisateurs d'obtenir des mises à jour immédiatement.Existe-t-il une solution qui permet à Node.js d'agir en tant que proxy inverse HTTP?

Maintenant, je sais que beaucoup de code a déjà été écrit pour Node.js, mais existe-t-il une solution qui permet à Node.js d'agir comme un proxy inverse pour servir le contenu statique comme le fait nginx? Ou peut-être existe-t-il un framework permettant de développer rapidement une telle couche en utilisant Node.js?

Répondre

2

node-http-proxy ressemble à ce que vous voulez

var sys = require('sys'), 
    http = require('http'), 
    httpProxy = require('http-proxy').httpProxy; 

http.createServer(function (req, res){ 
    var proxy = new httpProxy; 
    proxy.init(req, res); 
    proxy.proxyRequest('localhost', '9000', req, res); 
}).listen(8000); 

http.createServer(function (req, res){ 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.write('request successfully proxied!' + '\n' + JSON.stringify(req.headers, true, 2)); 
    res.end(); 
}).listen(9000);</code></pre> 
3

dogproxy peut être en mesure de vous aider, si ce n'est pas comme une solution complète, éventuellement comme les blocs de construction pour un. Cependant, vous pouvez reconsidérer le maintien de nginx pour le service de contenu statique - il a été spécialement conçu et réglé pour cette tâche particulière. Vous ajouteriez beaucoup de frais généraux en utilisant node.js pour servir du contenu statique - un peu comme utiliser PHP pour servir des fichiers statiques.

+0

Merci pour les bons conseils! –

Questions connexes