gzip_http_version 1.1;在 Nginx 中,使用 HTTP/2 时

gzip_http_version 1.1;在 Nginx 中,使用 HTTP/2 时

在一个旨在使用 HTTP/2 的站点的 Nginx 服务器块中,我看到了这种情况:

gzip_http_version 1.1;

这会与 HTTP/2 中发送的一些数据包产生冲突吗?

我不了解这个 Gzip 指令,因此我无法说 HTTP/2 数据包是否会受到它的影响。

答案1

gzip_http_version是个最低限度HTTP 协议的版本要求(来自客户端)需要压缩来自服务器的响应。默认为1.1

因此,任何使用协议版本 1.0 发送请求的用户代理都不会从服务器获得压缩的响应;响应将按原样发送。请注意,将值设置为 1.1 可能会损害极小一部分人群(可能是使用 Win XP 的人,顺便说一下,现在不支持该操作系统),如果有的话。

回答你的问题:

这会与 HTTP/2 中发送的一些数据包产生冲突吗?

不是,因为nginx会根据变量的值( 、、$server_protocol之一)以不同的方式处理请求。HTTP/1.0HTTP/1.1HTTP/2.0


附注:由于Transfer-Encoding不支持标头,因此HTTP/1.0不应将其设置gzip_http_version为。否则,在使用时,由于未设置标头,1.0您将无法获得 keepalives ;HTTP/1.1 使用标头来解决这个问题。Content-Lengthgzip_http_versionTransfer-Encoding: chunked

相关内容