[英]Proxy request to new port with http-proxy
我使用这个代码我想创建代理,所有应用程序调用端口3000将被“引导”到端口3002
var http = require('http'),
httpProxy = require('http-proxy');
var proxy = httpProxy.createProxyServer();
http.createServer(function (req, res) {
proxy.web(req, res, {
target: 'http://localhost:3002'
});
}).listen(3000);
// Create target server
http.createServer(function (req, res) {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.write('request successfully proxied to: ' + req.url + '\n' + JSON.stringify(req.headers, true, 2));
res.end();
}).listen(3002);
现在,当我使用原始端口(3000)运行应用程序时,我在浏览器中看到了
请求成功代理到3002
当我将端口(在浏览器中)更改为3002时,我仍然收到相同的消息,为什么? 好吗?
我应该在第二个创建服务器中生产什么? 我的意思是代替
res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('request successfully proxied to: ' + req.url + '\\n' + JSON.stringify(req.headers, true, 2)); res.end();
res.end()
是否也应该存在?
当我将端口(在浏览器中)更改为3002时,我仍然收到相同的消息,为什么? 好吗?
那很好。 您设置了一个侦听端口3002的“真实”服务器。如果您尝试直接访问它,则没有理由不这样做,并且您的请求事件处理程序(在该服务器上)所做的是返回字符串“请求成功代理到:“+网址。 这里没什么特别的:-)
我应该在第二个创建服务器中生产什么?
res.end()是否也应该存在
你应该放一些真实有用的服务器逻辑。 您没有描述您的服务器的功能,我认为这与您所做的问题无关。 res.end()
是否应该存在是服务器的功能。 再说一次,没有什么可看的:-)
如果你想看到一个真实的风景,试着在listen功能中添加一个主机名:
}).listen(3002,'127.0.0.1');
然后尝试从其他计算机(或与同一台计算机,但使用您的网络IP)连接。 如果您的网络IP是192.12.13.14,请尝试:
http://192.12.13.14:3002
和
http://192.12.13.14:3000
看到差异
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.