使用nodejs做反向代理服务器
2018-07-17 本文已影响20人
veb001
使用nodejs做反向代理服务器 __veblen
为什么要反向代理?Nginx/Apache反向代理
直接进入正题:
1.下载http-proxy
cnpm install http-proxy --save-dev
2.在项目下面新建一个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 =http.createServer(function(req, res) {
// 在这里可以自定义你的路由分发
var host = req.headers.host
switch(host){
case 'www.veblen.com':
proxy.web(req, res, { target: 'http://localhost:3000' });
break;
case 'boy.veblen.com':
proxy.web(req, res, { target: 'http://localhost: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);
缩进敲的够直观了,且行且珍惜!