(双代理)node js使用node-http-proxy在公司代理后面创建代理服务器

(double proxy) node js create proxy server behind corporate proxy using node-http-proxy

我有一个使用 node-http-proxy 创建代理来发送传入请求的 anodejs 应用程序,例如:http://localhost/api/login 到 https ://server1/api/login。这是使用的代码:

var httpProxy = require('http-proxy');

var proxy = httpProxy.createProxyServer();

self.routes['/api/*'] = function(req, res) {
        proxy.proxyRequest(req, res, 
        {
            target: "https://server1",
            changeOrigin: true
        });
    };

这在我的机器上工作得很好。 现在,当我在服务器上部署它时,出现错误:

{ [错误:getaddrinfo ENOTFOUND] 代码:'ENOTFOUND',错误号:'ENOTFOUND',系统调用:'getaddrinfo' }

The problem is that there is another proxy (corporate proxy called: localProxy) between myserver and server1.

我不知道在上面的代码中在哪里设置 localProxy。以及在哪里设置 server1 url?

在这种情况下有没有办法使用 node-http-proxy??

我的答案是停止使用代理模块并手动进行代理操作。

请在下面找到代码:

self.app.all('/blabla/*',function(req,res) {
    console.log("inside /blabla request");


  if(req.method=="GET"){
     console.log(req.url);
     var headers = {

        'Content-Type': 'application/json',
        'Content-Length': req.body.length ,
        'Accept': '*/*',
        'X-Requested-With':'XMLHttpRequest'
      };



    request({
      url: "http://YOUR_EXTERNAL_SERVER"+req.url,
      method: "GET",
      timeout: 10000,
      followRedirect: true,
      maxRedirects: 10,
      headers: headers
    }, function(error, response, body) {
        console.log("error " +error + " body "+ body);
            if(!error ) console.log(response.statusCode);
            if (!error && response.statusCode == 200) {
              if(body){    
                var ob=JSON.parse(body);
                res.send(body);
              }
            }
            else if (!error){
              console.log(" response.statusCode "+ response.statusCode);
                res.status(response.statusCode).send(body);
            }
            else {
                res.status(500).send(error);
            }    
    });
  }
  }