使用nodejs做反向代理服务器

为什么要反向代理?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);  

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

你可能感兴趣的:(使用nodejs做反向代理服务器)