0

I have anodejs application that uses node-http-proxy to create a proxy to send the incoming requests for example: http://localhost/api/login to https://server1/api/login. here is the code used :

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

var proxy = httpProxy.createProxyServer();

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

This is working just fine in my machine. Now when i deploy this on a server, i get error:

{ [Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }

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

I don't know where to set the localProxy in my code above. and where to set the server1 url?

and is there is a way to use node-http-proxy in this case??

0

1 Answer 1

0

the answer for me was stop using proxy module and make the proxy operation manually.

please find code below:

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);
            }    
    });
  }
  }
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.