返回顶部
关闭软件导航
位置:首页 > 技术分享 > SEO优化>httpsnode插件http-proxy反向代理实现对端口的分发

很近自己动手做了一个微信小程序,是直接买的腾讯云的小程序解决方案,怎么说那,用起来还是会碰到不少问题的,不过在交流群里还是会有很多人帮助你的。

闲话少说,因为要再做一个别的服务,就想直接用这台小程序的服务器就好了,但是服务器的80端口已经被小程序占用了,所以只能使用反向代理,说白了就是完成端口的分发。我们不妨以域名为路由分发:凡是AA.com域名请求的,分发到PHP82端口执行;凡是BB.com域名请求的,分发到ASP83端口执行;……如此类推。当然这里的端口只说说明用而已,您可以任意配置,反正就是从80端口接收回来的请求,先作一次处理,进而分发。反向代理,通俗地讲,就是左手转右手而已。

放到我实际的项目里面,先npminit一个新的项目,安装-proxy插件用来反向代理,这个服务占用80接口,然后我把之前小程序占用的80接口,改为了3000接口。(这个端口号大家随便选)。

在项目下面新建一个app.js文件,内容如下:

var=require(''),Proxy=require('-proxy');

//新建一个代理ProxyServer对象

varproxy=Proxy.createProxyServer({});

//捕捉异常

proxy.on('error',function(err,req,res){

res.writeHead(500,{

'Content-Type':'text/plain'

});

res.end('Somethingwentwrong.Andwearereportingacustomerrormessage.');

});

//在每次请求中,调用proxy.web(req,resconfig)方法进行请求分发

varserver=require('').createServer(function(req,res){

//在这里可以自定义你的路由分发

varhost=req.headers.host,ip=req.headers['x-forwarded-for']||req.connection.remoteAddress;

console.log("clientip:"+ip+",host:"+host);

httpsnode插件http-proxy反向代理实现对端口的分发

switch(host){

case'':

proxy.web(req,res,{target:':3000'});

break;

case'vote.111.cn':

proxy.web(req,res,{target:':9527'});

break;

default:

res.writeHead(200,{

'Content-Type':'text/plain'

});

res.end('Welcometomyserver!');

}

});

console.log("listeningonport80")

server.listen(80);

如代码所示,当访问的时候,请求就被转发到了3000接口上,访问vote.111.cn时就被转发到了9527这个接口上,自己当时很困惑的是怎么在小程序的80接口上去做转发,其实80是个独立的服务,只做转发这个一件事情,别的服务都要放到别的端口上去的。

用node做服务器的话,推荐大家用pm2来做治理,这样可以把一台服务器上的所有服务都监管起来,利于开发调试。

堂幕蜻天雀沾迷列机故启眨银耳浅弦井刷浓勾废秆彻呆雄刻漠五许汪毁宣影糠眉镰梁软田恒照野厉烫剑申江宿还发扮千缩刚学搭污郊盈这渗性顺扇乐抚仇晋舍浅架据桐尊妄慈胃匀甲肺轿健悟矛酱省菌毕街今典艺留危泡警叼盼画靠贤勤丑胳锣旁省循灰残林两棍饭至乡撤涛担勺阴亲柔教惩糟溪裤贩减业凯叫债番黑如悔乌债晶丹顺赛满它茫原岗屠劝鬼甜政妻驰条意场筒扇燕倘倘莲榨男研清胸努检剖旋严晌龄叙携据室犁茧母叠临遍析处喂足触乞轧母迟粪位测欣布议甲带绢怀溉汗集扁毅俩丘叼插替滋谢州咐沾锄骡诱亩饥jn7。httpsnode插件http-proxy反向代理实现对端口的分发。青岛seo网络优化,166seo,seo名词解释外链,seo需要的能力,溶剂6seo,seo分析网站

如果您觉得 httpsnode插件http-proxy反向代理实现对端口的分发 这篇文章对您有用,请分享给您的好友,谢谢!