1

我正在 Mac OS X 10.9.5 上本地开发一个 node.js 应用程序,它代理对另一台服务器上的大文件的请求。我尝试使用 node-http-proxy 以及简单的 http/request one-liner (req.pipe(request()).pipe(res)) 编写我的应用程序。两者都可以正常工作,直到我开始向我的代理发出 30 个同时请求以获取大型 (90MB) 文件。跟踪后端服务器上的访问日志,我可以看到我的代理请求中只有一部分立即出现。其他的会在几秒钟内滴流,有时在几分钟后。在某些情况下,后来的出站请求与立即到达的一些请求的完成相对应,而在其他情况下,就解除阻塞请求而言,我看不到任何模式。立即发送到后端服务器的请求数不一致。我试过设置http。globalAgent.maxSockets 比我的 30 个请求大得多,但这并没有什么区别。关于什么可能会延迟我的出站 HTTP 请求的子集的任何其他想法?谢谢!

4

1 回答 1

0

请注意,(至少)有两个出站 HTTP 套接字池。您已经正确配置了一个用于出站 http 连接http.globalAgent.maxSockets,但是,还有另一个用于 https 连接,https.globalAgent.maxSockets.

只是作为一个复习。从关于此事的节点文档

代理.maxSockets #

默认设置为 5。确定代理可以为每个源打开多少并发套接字。Origin > 是 'host:port' 或 'host:port:localAddress' 组合。

于 2014-12-01T14:27:21.967 回答