Y at-il une solution qui permet d'agir Node.js comme un proxy inverse HTTP?
-
19-09-2019 - |
Question
Notre entreprise a un projet qui utilise en ce moment nginx comme proxy inverse pour du contenu statique et supportant des connexions comète. Nous utilisons des connexions de vote longues pour se débarrasser des demandes de rafraîchissement constant et permettre aux utilisateurs d'obtenir des mises à jour immédiatement.
Maintenant, je sais qu'il ya beaucoup de code déjà écrit pour Node.js, mais est-il une solution qui permet d'agir Node.js comme proxy inverse pour du contenu statique comme nginx fait? Ou peut-être il y a un cadre qui permet de développer rapidement une telle couche en utilisant Node.js?
La solution
nœud 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>
Autres conseils
dogproxy pourrait être en mesure de vous aider, sinon comme une solution complète alors peut-être que le bâtiment blocs pour un.
Cependant, vous voudrez peut-être reconsidérer garder nginx pour du contenu statique - il est spécialement conçu et mis au point pour cette tâche particulière. Vous ajouterez beaucoup de frais généraux en utilisant Node.js pour servir du contenu statique -. Tout comme l'utilisation de PHP pour servir des fichiers statiques