使用nodejs做反向代理服务器

2018-07-17  本文已影响20人  veb001

index

使用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);

缩进敲的够直观了,且行且珍惜!

上一篇下一篇

猜你喜欢

热点阅读