怎么在node.js中利用http-proxy 创建一个代理服务器

怎么在node.js中利用http-proxy 创建一个代理服务器?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

代理又分 正向代理 和 反向代理:

怎么在node.js中利用http-proxy 创建一个代理服务器

  • 正向代理:帮助局域网内的用户访问外面的服务。

  • 反向代理:帮助外面的用户访问局域网内部的服务。

一、安装 http-proxy

npminstallhttp-proxy--save

二、代理本地服务

consthttp=require('http');
consthttpProxy=require('http-proxy');
//创建一个代理服务
constproxy=httpProxy.createProxyServer();
//创建http服务器并监听8888端口
letserver=http.createServer(function(req,res){
//将用户的请求转发到本地9999端口上
proxy.web(req,res,{
target:'http://localhost:9999'
});
//监听代理服务错误
proxy.on('error',function(err){
console.log(err);
});
});
server.listen(8888,'0.0.0.0');

9999端口服务代码:

consthttp=require('http');
http.createServer(function(req,res){
res.end('port:9999');
}).listen(9999,'0.0.0.0');

当们在本地访问 8888 端口时,proxy 会帮我们把请求代理到 9999 端口服务,然后返回数据。

二、通过host实现多个虚拟主机,共用一个端口

consthttp=require('http');
consthttpProxy=require('http-proxy');
//创建一个代理服务
constproxy=httpProxy.createProxyServer();
//虚拟主机
consthosts={
'www.a.me':'http://localhost:8888',
'www.b.me':'http://localhost:9999',
};
//创建http服务器并监听80端口
letserver=http.createServer(function(req,res){
//获取主机名
lethost=req.headers['host'];
host=host.split(':')[0];
//根据主机名,找到要代理的服务
lettarget=hosts[host];
if(target){
proxy.web(req,res,{
target:target
});
proxy.on('error',function(err){
console.log(err);
});
}else{
res.end('end');
}
});
server.listen(80,'0.0.0.0');

8888.js服务代码:

consthttp=require('http');
http.createServer(function(req,res){
res.end('port:8888');
}).listen(8888,'0.0.0.0');

9999.js服务代码:

consthttp=require('http');
http.createServer(function(req,res){
res.end('port:9999');
}).listen(9999,'0.0.0.0');

注意 www.a.me 和 www.b.me 这两个域名需加入 C:\Windows\System32\drivers\etc\hosts 文件中。

127.0.0.1 www.a.me127.0.0.1 www.b.me

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注恰卡编程网行业资讯频道,感谢您对恰卡编程网的支持。

发布于 2021-03-21 22:40:34
收藏
分享
海报
0 条评论
158
上一篇:如何在tensorflow中使用tf.concat()函数 下一篇:怎么在Python中自动生成Word文档
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码