Site Overlay

Node 反向代理 Sample

var http = require('http'), httpProxy = require('http-proxy');
var fs = require("fs");
// 新建一个代理 Proxy Server 对象  
var proxy = httpProxy.createProxyServer({proxyTimeout: 3000});

// 捕获异常  
proxy.on('error', function (err, req, res) {
    res.writeHead(500, {
        'Content-Type': 'text/html'
    });
    //res.end(fs.readFileSync('./error.html'));  
     res.end(JSON.stringify(err));
 });

// 在每次请求中,调用 proxy.web(req, res config) 方法进行请求分发  
var server = http.createServer(function (req, res) {

    // 在这里可以自定义你的路由分发  
    var host = req.headers.host
    switch (host) {
        default:
            proxy.web(req, res, { target: 'http://****:8000' });
            //res.writeHead(500, {
            //  'Content-Type': 'text/html'
            //});
            //res.end(fs.readFileSync('./error.html'));
    }

});

console.log("listening on port 80")
server.listen(80);  

发表评论

电子邮件地址不会被公开。 必填项已用*标注