节点http-proxy:将流量转发到外部https网站 - 崩溃

时间:2017-05-24 13:22:30

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

我想将REST请求从我的前端wepp应用程序传输到外部Jira服务器上的API。

为此,我使用节点http-proxy,这对于一个http的Jira服务器来说是可以的。

但现在我想为https创建一个单独的服务器。

所以将som更改为this示例我现在有了这个:

var path  = require('path'),
    fs    = require('fs'),
    httpProxy = require('http-proxy'),
    certFolder = '/my/cert/folder';

//
// Create the HTTPS proxy server listening on port 8002
//
httpProxy.createServer({

  //(placeholder address)
  target: {
    host: 'https://ext.jiraserver.com',
    port: 443
  },

  // letsencrypt cert
  ssl: {
    key: fs.readFileSync(path.join(certFolder, 'privkey.pem'), 'utf8'),
    cert: fs.readFileSync(path.join(certFolder, 'fullchain.pem'), 'utf8')
  },

  secure: true
}).listen(8002);

console.log('https proxy server started  on port  8002');

但是当我向我的服务器发出请求时,https://my.domain.com:8002它崩溃了服务器并显示错误消息:

  

... / node_modules / HTTP代理/ LIB / HTTP代理/ index.js:119       扔错了;       ^

     

错误:getaddrinfo ENOTFOUND https://ext.jiraserver.com   https://ext.jiraserver.com:443       在errnoException(dns.js:28:10)       在GetAddrInfoReqWrap.onlookup [as oncomplete](dns.js:76:26)

我似乎无法让它工作......服务器在线且地址正确,所以我不知道错误。

我的代码是错误的还是我该怎么办才能让它发挥作用?

谢谢!

1 个答案:

答案 0 :(得分:2)

不要将https://包含在DNS主机定义中。

host: 'ext.jiraserver.com',

错误消息告诉您这是DNS解决问题。您正在尝试查找https://ext.jiraserver.com的DNS,包括https