NodeJS HTTP代理 - 添加标头并更新请求URL

时间:2015-11-30 00:36:32

标签: node.js proxy node-http-proxy

我正在使用此模块执行以下操作:

  1. 解析req网址
  2. 使用网址中的令牌为请求添加新标头
  3. 更新实际请求网址(从网址中删除令牌)
  4. 我正在尝试使用以下代码:

    function initializeServer(){
      var server = app.listen(5050, function () {
        var host = server.address().address
        var port = server.address().port
        logger.info('NodeJS Server listening at http://%s:%s', host, port)
      });
    }
    
    proxy.on('proxyReq', function(proxyReq, req, res, options) {
      console.log("intercepting ... ")
        proxyReq.setHeader('x-replica', '123');
        req.url = '/newurl';
    });
    
    function initializeController(){
      app.get('/myapp*', function (req, res) {
         proxy.web(req, res, { target: 'http://127.0.0.1:8081' });
      });
    }
    

    其中8081是我的测试服务器,代理服务器运行在5050.

    现在,标题设置有效,但URL设置不起作用。如何使用节点HTTP代理实现此目的?

1 个答案:

答案 0 :(得分:2)

proxy.on('proxyReq',...)处理程序req是(原始)传入请求,而proxyReq是将发送给目标服务器的请求。您需要设置proxyReq.path字段。