node.js - 尽管 maxSockets 高,Nodejs 出站 HTTP 请求还是延迟

标签 node.js proxy node-http-proxy

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

最佳答案

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

只是作为复习。来自 node docs on the matter :

agent.maxSockets#

By default set to 5. Determines how many concurrent sockets the agent can have open per origin. Origin > is either a 'host:port' or 'host:port:localAddress' combination.

关于node.js - 尽管 maxSockets 高,Nodejs 出站 HTTP 请求还是延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27219844/

相关文章:

java - 使用内部类强制转换代理 Java 类

javascript - 使用 node.js http-proxy 测量流量

proxy - http转https节点代理

node.js - Node http-proxy/http-proxy-middleware - 如何操作代理响应

node.js - Firebase - Node 云函数解析触发器时出错 : Cannot find module 'firebase-functions'

Android模拟器网络配置

node.js - 无法使用 UpdateItem 从列表中删除元素

node.js - 如何使用 Fixie Socks(Heroku 附加组件)通过 mongoose 连接到 mongodb

node.js - 如何以不同的用户级别登录我的 Angular

node.js - 表不存在 Sequelize