2015-05-28 6 views
1

У меня есть приложение anodejs, которое использует node-http-proxy для создания прокси для отправки входящих запросов, например: http: // localhost/api/login to https: // server1/api/login. здесь используется код:(двойной прокси) узел js создает прокси-сервер за корпоративным прокси с помощью node-http-proxy

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

var proxy = httpProxy.createProxyServer(); 

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

Это прекрасно работает на моей машине. Теперь, когда я развернуть это на сервере, я получаю ошибку:

{[Error: getaddrinfo ENOTFOUND] Код: 'ENOTFOUND', ERRNO: 'ENOTFOUND', системный вызов: 'getaddrinfo'}

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

Я не знаю, где установить localProxy в моем коде выше. и где установить URL-адрес server1?

и есть ли способ использования node-http-proxy в этом случае?

+0

Я сталкиваюсь с той же проблемой. Вы нашли решение этой проблемы? – phwa4563

+0

Да, один из моих колледжей помог мне. ответ для меня заключался не в том, чтобы использовать прокси-сервер, а сам. –

+0

@ phwa4563 см. Ответ ниже –

ответ

0

Ответ для меня заключался в том, чтобы остановить использование прокси-модуля и выполнить операцию прокси вручную.

пожалуйста найти код ниже:

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); 
      }  
    }); 
    } 
    } 

 Смежные вопросы

  • Нет связанных вопросов^_^