我正在尝试配置 nginx 来服务一个小型、完全静态的站点。
如果不启用 HTTP/2,我在 Chrome 开发者工具中得到以下图表:
在这里,我们看到了非常好的 TTFB 和文件吞吐量。不过从第七个请求开始,由于浏览器的连接限制为 6 个,因此浏览器会进行一些排队。这就是我想要切换到 HTTP/2 的原因(以及它的其他好处)。
现在,启用 HTTP/2(http
在中添加选项listen
):
前几个请求很棒,但随后一切都迅速恶化(延迟和吞吐量/下载速度)。
所有其他参数保持不变,并且我持续看到这种行为。
我的 nginx 配置(如果有帮助的话):https://gist.github.com/alfredxing/12757c0f7f91c91a415b651fd9510ec4
知道为什么会发生这种情况吗?
答案1
HTTP/2 服务器的行为方式与普通的 HTTP/1.1 服务器不同。首先,HTTP/2 服务器可以看到来自同一客户端的所有请求,并对其中一些请求进行不同的优先级排序。