gpt4 book ai didi

nginx - HTTP2和NGINX-什么时候使用keepalive指令?

转载 作者:行者123 更新时间:2023-12-04 10:06:57 37 4
gpt4 key购买 nike

我正在尝试迁移到http/2。我已经建立了一个Wordpress网站并配置了NGINX以使用http/2(使用SSL/TLS)为其提供服务。

我对http/2的理解是,默认情况下,它使用一个连接传输多个文件-而不是打开新连接并为每个文件重复SSL握手。

为了获得与http/1.x类似的效果,NGINX提供了keepalive指令。

那么在单独使用http/2时使用keepalive指令有意义吗?包含它时,使用“nginx -t”检查我的配置文件不会报告任何错误。但这有效果吗?基准测试没有差异。

最佳答案

您误会了它的工作原理。

在请求之间保持Alive的工作

当您下载网页时,它会下载HTML页面,并发现还需要另外20种资源(CSS文件,javascript文件,图像,字体等)。

在HTTP/1.1下,您一次只能请求这些资源之一,因此通常Web浏览器会启动另外5个连接(总共提供6个连接),并请求这20个资源中的6个。然后,当这些连接释放时,它请求剩余的14个资源。是的,在这些请求之间保持事件是有帮助的,但这并不是唯一的用途,我们将在下面进行讨论。建立这些连接的开销很小,但很明显,并且一次只能请求20个资源中的6个资源存在延迟。这就是为什么HTTP/1.1对于当今的Web使用效率低下的原因,其中典型的Web页面由100个资源组成。

在HTTP/2下,我们可以在同一连接上一次触发所有20个请求,因此在此有一些好处。是的,从技术上讲,您不会真正受益于它们之间的保持事件状态,因为直到它们全部到达连接仍在使用中-尽管仍然受益于第一个HTML请求与其他20个请求之间的微小延迟。

但是,在该初始负载之后,可能会有更多的请求。或者是因为您正在网站上浏览,或者是因为您与页面进行了交互,并且进行了其他XHR api调用。无论是在HTTP/1.1还是HTTP/2上,这些都将受益于保持事件状态。

因此,HTTP/2不会否定保持事件的需求。它消除了对多个连接的需求(除其他外)。

因此,答案是始终使用保持事件状态,除非您有很好的理由不这样做。您正在说什么类型的基准测试没有区别呢?

关于nginx - HTTP2和NGINX-什么时候使用keepalive指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38188404/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com