Nginx HTTP(2)连接的“等待”时间

4
我们正在学习优化nginx,对此还很陌生。我们在OS X上运行nginx(nginx/1.9.9),以缓存代理模式运行,并在nginx后面运行Apache服务器。图像和静态内容在nginx上缓存,而页面请求被转发到Apache服务器。我们确认通过“X-Cache HIT”标头命中了静态内容的缓存。然而,当通过GT Metrix运行其中一个站点时,我们注意到HTTP(2)连接有很长的“等待”时间。请参见此屏幕截图以了解我们的意思:enter image description here 注意500毫秒的等待时间。那么,这个等待时间是在服务器端还是客户端?这可能是因为HTTP(2)在等待先前的文件加载吗?我知道它逐个地管道资源,与HTTP1/1不同,后者浏览器会打开多个单独的连接。另外,请注意来自pagead2.google.com和secure.gravatar.com的内容几乎没有“等待”时间。

来自nginx配置的一些信息:

worker_processes  auto;

events {
worker_connections  2048;
multi_accept        on;
}

有人对我们为什么有这么高的“等待”时间有任何想法吗?我是否在担心无谓的事情,这是HTTP2的正常部分吗?

提前感谢您的建议、建议和见解。


你为什么认为GT Metrix是通过HTTP/2连接到你的网站的? - dsign
因为标题显示如此。 - Ted Wilmont
1个回答

1
鉴于您截图中显示的其他数值,我猜测您的吞吐量受到 GT Metrix 终端和您的服务器之间网络延迟的限制。
HTTP/2 运行在 TCP 之上,因此受到诸如 TCP 慢启动 等因素的限制,这意味着传输数据需要在您的服务器和 GT Metrix 之间进行多次往返。当您的延迟约为100ms时,无论可用带宽如何,数据传输都需要更长的时间。
您可以通过使用距离实际服务器更近的测试服务器运行另一个 GT Metrix 测试来轻松测试此假设(对我而言,请求从我的桌面花费了55ms)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接