Im, создающий новый сервер для прослушивания нового порта (со вторым созданием ниже), теперь, когда я вызываю приложение с каким-то портом, я хочу перенаправить его на новый создан порт сервера и поместить сообщение в браузере «Запрос пути к на 9009»Ошибка при попытке перенаправить приложение на новый серверный порт
Я использую следующий код для создания сервера
httpProxy = require('http-proxy');
proxy = httpProxy.createProxyServer({});
http.createServer(function (req, res) {
var hostname = req.headers.host.split(":")[0];
if (hostname ==='localhost') {
proxy.web(req, res, {target: 'http://localhost:9009'});
}
} }).listen(3000, function() {
console.log('App listening on port 3000');
});
now I create the new server
http.createServer(function (req, res) {
res.writeHead(302, {
'Location': 'http://localhost:9009'
});
res.end("Request route to 9009");
}).listen(9009);
теперь, когда я поставил локальный: 3000 это перенаправляет меня localhost: 9009 (что именно то, что мне нужно Я вижу в лоб сер), но я получил ошибкиThis webpage has a redirect loop ERR_TOO_MANY_REDIRECTS
Если удалить из второго createServer функционируют следующие
res.writeHead(302, {
'Location': 'http://localhost:9009'
});
это не перенаправляет и я не получил ошибку ... я поставил этот код в неправильном месте? или есть способ сделать это разным? Я использую https://github.com/nodejitsu/node-http-proxy
обновление
изменить код к следующему
var http = require('http');
http.createServer(function (req, res) {
console.log("Server created");
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('9009 here' + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(9009);
http.createServer(function(req, res) {
console.log("Server 2 created");
res.writeHead(302, {
'Location': 'http://localhost:9009/'
});
res.end("Request route to 9009");
}).listen(3001);
Почему вы прокси-порт 9009 на порт 3000, если вы хотите, чтобы клиент перенаправлялся на 9009? когда вы прокси-сервер, вы делаете контент, доступный в порту 9009, также доступным на порту 3000. Если вы просто хотите отправить трафик с порта 3000 на другой порт, не используйте прокси, а просто перенаправляйте их на http. – dandavis
Вы хотите, чтобы каждый посетитель перенаправлялся на новый уникальный порт или все посетители порта 9009? – dandavis
@ dandavis-позволяет предположить, что приложение будет маршрутизировать до 9009, возможно ли это? Вы можете помочь, как это сделать? –