使用Node JS和Express JS缓慢的HTTPS请求?

我有一个关于我在下面发布的代码的问题。 这个/ auth请求在平均值上是正常的吗? 在使用Google Chrome检测面板时,显示500 – 800毫秒(等待TTFB)? 使用模块请求执行https请求时,我会得到相同的结果。 我平均。 直接在浏览器中inputhttps://graph.facebook.com时,可以获得60毫秒的时间。

任何帮助表示赞赏!

app.get('/auth', function(req, res){ res.writeHeader(200, {'Content-Type': 'application/json'}); var options = { host: 'graph.facebook.com', port: 443, path: '/', method: 'GET', }; https.get(options, function (resp) { var body = ''; resp.on('data', function (chunk) { body += chunk; }); resp.on('end', function () { console.log('Request ended.'); res.end('Done'); }); }); }); 

– 时间的快照 –

caching:

  • 停滞:0.458毫秒
  • 请求发送:0.286 ms
  • 等待(TTFB):782.409毫秒
  • 内容下载:0.994毫秒

清除浏览器数据后:

  • 停滞:0.695毫秒
  • DNS查找:15.062毫秒
  • 初始连接:48.599毫秒
  • SSL:23.922
  • 请求发送:0.308
  • 等待(TTFB):645.622毫秒
  • 内容下载:1.560毫秒

..我在节点前面使用Nginx。

几乎可以肯定的是,所有的时间都花在与Facebook开放和谈判SSL上。 每次向服务器发送请求时,您当前的设置都必须这样做。 一般来说,您希望使用类似https://www.npmjs.com/package/agentkeepalive的方法来保留预先协商的SSL套接字的连接池。 浏览器做到这一点,这就是为什么从浏览器直接到Facebook更快。

在路线外部创build代理,然后在您的路线中将代理作为选项对象的一部分传递。