Недавно познакомился с модулем по имени http-proxy. На мой взгляд образцовый инструмент - отбивает заявленный функционал на все 100% и в то же время простой как сатиновые трусы. Статистика модуля на GitHub, npm, а также мэйнтэйнер (не нашел подходящее слово в русском языке) в лице nodejitsu говорят сами за себя. Хочу предложить очень простой пример для того чтобы понять о чем речь:
Запускаем приложение:
Открываем браузер, идем по адресу http://localhost:5050 и обновляем страницу несколько раз.
Easy peasy :).
var http = require('http'),
httpProxy = require('http-proxy'),
frontPort = 5050,
i = 3,
j = i;
(function go(i) {
if (i) return (function() {
var port = frontPort + i;
http.createServer(function(req, res) {
var s = 'I am Groot, port: ' + port;
res.end(s);
}).listen(port, function() {
console.log('Back server listen on port', port);
go(--i);
});
})();
var proxy = httpProxy.createProxyServer({});
http.createServer(function(req, res) {
// здесь логика
proxy.web(req, res, { target: 'http://127.0.0.1:505' + (Math.floor(Math.random() * j) + 1) });
}).listen(frontPort, function() {
console.log('Front server listen on port', frontPort);
});
})(i);
Запускаем приложение:
Открываем браузер, идем по адресу http://localhost:5050 и обновляем страницу несколько раз.
Easy peasy :).


Комментариев нет:
Отправить комментарий
Комментарий будет опубликован после модерации