欢迎来到258分享网,纯净的网络源码分享基地!

258资源分享网

全部作品
全部作品
网站源码
微信源码
素材特效
源码插件
视频教程
建站学院
热门搜索: 织梦  农业种植  农业  安全设置  官方
258资源分享 > 建站学院 > 微信开发 > node插件http-proxy反向代理实现对端口的分发

推荐下载

HTML5响应式自适应网咯设计

2020-05-12   浏览:738

高端HTML5响应式企业通用网

2020-05-06   浏览:521

html5响应式外贸网站英文版

2020-05-08   浏览:509

HTML5自适应律师工作室类网

2020-04-04   浏览:502

HTML5影视传媒文化公司类网

2020-05-12   浏览:497

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

发布时间:2020-12-04  

本文用于辅助这个问题的解答: 
服务器的同学,一个服务器怎么运行多个小程序 
分享者:孟星魂,原文地址

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

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

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

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

 

 

var http = require('http'), httpProxy = require('http-proxy');

 

// 新建一个代理 Proxy Server 对象

var proxy = httpProxy.createProxyServer({});

 

// 捕获异常

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

res.writeHead(500, {

'Content-Type': 'text/plain'

});

res.end('Something went wrong. And we are reporting a custom error message.');

});

 

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

var server = require('http').createServer(function(req, res) {

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

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

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

 

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('Welcome to my server!');

}

});

 

console.log("listening on port 80")

server.listen(80);

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

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

本文标签

:备案管家服务帮您把复杂流程变简单,解决您在进行网站备案过程中遇到的效率低下和成功率不高的问题。个人300/2个域名,企业500/5个域名,qq1650004.