Cliente - Nginx HTTP2 - Apache HTTP1.1 parece ser uma violação do RFC
Olá, sou Munou. De repente, percebi que meu pull request para o Deno foi mesclado. Que legal!
Problema
Como o título sugere, se isso for uma violação do RFC, o que acontece é
não é possível usar o curl
curl: (92) HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
Parece que isso acontece quando o HTTP/2 sempre exige comunicação HTTPS, mas o Nginx é usado como proxy reverso para se comunicar via HTTP com um servidor Apache de backend.
Solução alternativa: Desativar HTTP/2
Esse tipo de... problema bobo parece estar surgindo em vários lugares no Github.
Por enquanto, desativei apenas o HTTP/2.
Além disso, nesse estado, pode ou não ser visível em navegadores MacOS/IOS, e há pouquíssima informação sobre como resolver isso. Especificar --http1.1 nas opções do curl funciona por enquanto, mas...
Especificação do HTTP2
De acordo com a especificação do HTTP2, ele pode ser usado tanto com HTTP quanto com HTTPS, mas os navegadores parecem permitir apenas comunicação HTTPS. O que é isso...
Autoassinatura Ineficaz
Tentei comunicação HTTPS temporária com um certificado autoassinado no Apache de backend, e também adicioneiProtocols h2 http/1.1
no backend e ativei o módulo com a2enmod, mas ainda assim não parece funcionar.
Necessidade do HTTP/2
Comparando a velocidade de download de múltiplas imagens com HTTP/1.1 e HTTP/2
Na verdade, eu gostaria de ter suporte adequado para HTTP/2, mas será que é apenas quando necessário...?
Como isso aconteceu ontem, provavelmente preciso investigar um pouco mais devagar. 👀