Implementando um proxy reverso compatível com HTTP/2 no Nginx

3 min

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

Olá, sou um incompetente.
Embora os artigos recentes pareçam estar lutando para suportar HTTP/2...

$ curl https://soulminingrig.com/
curl: (92) Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]

E então...

O que é HTTP/2 - JPNIC

O upgrade só pode ser usado com HTTP.

E, como a conexão entre Nginx e Apache é feita via HTTP1.1, essa informação de cabeçalho é incluída, e ao usar curl com a comunicação HTTP/2, que é o padrão HTTPS, ele reclama.
Então, pensei, e se eu remover isso? Tentei e funcionou.

Em termos gerais, estávamos entregando com informações de cabeçalho de comunicação HTTP incluídas, então se ajustarmos para HTTP2, deve funcionar, certo? É algo assim.
Em informações em japonês, o artigo da NIC é provavelmente o mais fácil de entender.

Configuração do Nginx

Parece que basta configurar isso na diretiva location e remover o cabeçalho Upgrade.
Pode não ser necessário, mas como é uma comunicação HTTP, eu o especifiquei explicitamente.

    proxy_hide_header Upgrade;
    proxy_http_version 1.1;

Vamos de curl!

Com isso, ao fazer curl -I...

$ curl -I https://soulminingrig.com/
HTTP/2 200 
server: nginx/1.27.0
date: Thu, 21 Nov 2024 22:44:47 GMT
content-type: text/html
content-length: 15375
vary: Accept-Encoding
last-modified: Thu, 21 Nov 2024 03:45:14 GMT
etag: "3c0f-627641819d3e9"
accept-ranges: bytes
vary: Accept-Encoding
content-security-policy: upgrade-insecure-requests
alt-svc: h3=":443"; ma=86400
x-content-type-options: nosniff

Funcionou!!!
Hoje tenho minha festa de despedida, então poderei beber álcool sem preocupações!
Até a próxima. Conto com vocês.

Related Posts