Dans un bloc de serveur Nginx d'un site destiné à fonctionner avec HTTP/2, j'ai déjà vu ceci:
gzip_http_version 1.1;
Cela peut-il créer un conflit avec certains paquets envoyés via HTTP/2?
Je ne comprends pas cette directive Gzip et par conséquent, je ne peux pas dire si les paquets HTTP/2 pourraient en être affectés.
gzip_http_version
est la version minimale du protocole HTTP de la demande (provenant du client) nécessaire pour compresser la réponse du serveur. La valeur par défaut est 1.1
.
Par conséquent, aucun agent d'utilisateur qui envoie une demande à l'aide du protocole version 1.0 ne recevra la réponse compressée du serveur; la réponse irait telle quelle. Notez que le fait de définir la valeur sur 1.1 serait probablement très dommageable pour un très petit sous-ensemble de la foule (probablement quelqu'un avec Win XP, qui n'est plus pris en charge maintenant BTW), le cas échéant.
Pour répondre à ta question:
Cela peut-il créer un conflit avec certains paquets envoyés via HTTP/2?
Non, car nginx
traiterait les demandes différemment en fonction de la valeur de la variable $server_protocol
(une parmi HTTP/1.0
, HTTP/1.1
, HTTP/2.0
).
Remarque: en tant qu'entité Transfer-Encoding
n'est pas prise en charge dans HTTP/1.0
, vous ne devez pas définir gzip_http_version
à 1.0
. Sinon, vous n'obtiendrez pas de keepalives car l'en-tête Content-Length
n'est pas défini lorsque gzip_http_version
est utilisé; HTTP/1.1 résout ce problème en utilisant l'en-tête Transfer-Encoding: chunked
.