Cliente - Nginx HTTP2 - Apache HTTP1.1 parece ser una violación de RFC

3 min

language: ja bn en es hi pt ru zh-cn zh-tw

Hola, soy Munou. De alguna manera, antes de darme cuenta, mi pull request a Deno fue fusionada. ¡Genial!

Problema

Como dice el título, si esto es una violación de RFC, lo que sucede es que
no se puede usar curl

curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)

Parece que esto ocurre cuando HTTP/2 siempre requiere comunicación HTTPS, pero Nginx actúa como proxy inverso y se comunica por HTTP con el servidor Apache de backend.
Solución alternativa: Desactivar HTTP/2
Parece que este tipo de "solución tonta" y discusiones sobre este problema están surgiendo en varios lugares de Github.
Por ahora, solo he detenido HTTP/2.

Además, en este estado, a veces no se puede ver desde los navegadores de MacOS/iOS, y a veces sí, y no hay mucha información sobre una solución. Si se especifica --http1.1 en las opciones de curl, funciona por ahora, pero...

Especificación de HTTP2

Según la especificación de HTTP2, se puede usar tanto con HTTP como con HTTPS, pero los navegadores solo parecen permitir la comunicación HTTPS. ¿Qué es eso...?

Autofirmado ineficaz

En el Apache de backend, intenté una comunicación HTTPS temporal con un certificado autofirmado, y también en el lado del backend, escribí Protocols h2 http/1.1
y habilité el módulo con a2enmod, pero parece que esto tampoco funciona.

Necesidad de HTTP/2

Comparando la velocidad de descarga de múltiples imágenes con HTTP/1.1 y HTTP/2
En realidad, me gustaría implementar correctamente el soporte para HTTP/2, pero me pregunto si será solo cuando sea necesario...
Como esto acaba de suceder ayer/hoy, parece que necesito investigar un poco más a fondo 👀

Related Posts