【问题标题】:Why is the initial connection time for a HTTP request so long?为什么一个 HTTP 请求的初始连接时间这么长?
【发布时间】:2016-06-20 10:05:20
【问题描述】:

我的网络应用程序位于 Nginx 后面。有时候,我的网页加载需要超过 10 秒,我使用 Chrome DevTools 跟踪时间,它看起来像这样:

奇怪的是,当页面加载缓慢时,初始连接时间总是 11 秒长。并且在这个缓慢的请求之后,相同页面的后续加载变得非常快。

造成这种情况的可能问题是什么?

附:如果这是由我的服务器上的资源限制引起的,我可以在某些系统日志中看到一些错误/警告吗?

【问题讨论】:

  • 我面临同样的问题。您是否找到了此问题的解决方案或任何我可以看到确切问题的日志文件?
  • 嗨,有人能找到问题的核心吗? @AdarshTiwari
  • 由于缓存,后续加载速度更快。尝试通过 Chrome 以隐身模式访问它或禁用缓存以验证这一点。

标签: http nginx google-chrome-devtools


【解决方案1】:

初始连接是指执行初始 TCP 握手和协商 SSL(如果适用)所花费的时间。缓慢可能是由拥塞引起的,其中服务器已达到限制并且在现有连接未决时无法响应新连接。您可以在 Nginx 配置中查看一些 performance enhancements

【讨论】:

  • Nginx文档中提到的系统调优项目我都看完了,问题依旧存在。
  • 如果资源限制导致拥塞,是否有日志文件可以看到问题?
  • @NeoWang 我不太清楚 Nginx 的细节。它也很可能是由你无法控制的东西引起的。你在其他网站上遇到过这个问题吗?否则,它可能是您和服务器之间的防火墙或路由器。
  • @GideonPyzer 如果初始连接为 0 是否意味着重用现有连接?
  • SSL 协商现在是 Chrome 开发工具中的一个额外字段。解释很好,甚至可能是您的提供商设备,如防火墙、ddos 保护......
【解决方案2】:

使用 dig 命令检查您的域名解析过程。 如果返回多答案部分,请检查这些 ips 是否有效。

【讨论】:

  • 从截图中可以看出,DNS 解析是一个额外的字段,不计入 OP 提供的慢速部分。唯一有效的问题是客户端 IP 的reverse lookup from the server - 这可能很慢并且会计入客户端的“初始连接”计时器。
【解决方案3】:

您应该消除指向不存在文件的文件调用。我在一个客户那里遇到了同样的问题,404 图像导致了问题,因为它延迟了其他文件的加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多