Configuración de Nginx como proxy inverso compatible con HTTP/2
Hola, soy el incompetente.
Mis artículos recientes parecen estar luchando con el soporte de HTTP/2...
$ curl https://soulminingrig.com/
curl: (92) Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]
Y entonces...
La actualización solo se puede usar para http.
Y como la conexión entre Nginx y Apache se realiza con HTTP1.1, esta información de encabezado está incluida, y al hacer curl con comunicación HTTP/2, que es el estándar de HTTPS, se genera un error.
Así que pensé, "¿Qué pasaría si lo elimino?", lo intenté y funcionó.
En pocas palabras, estaba entregando la información de encabezado de la comunicación HTTP, así que si la ajusto para que coincida con HTTP2, debería funcionar, ¿verdad? Es algo así.
Para información en japonés, creo que el artículo de NIC es el más fácil de entender.
Configuración de Nginx
Parece que todo lo que hay que hacer es configurar esto en la directiva location y excluir el encabezado Upgrade.
Puede que no sea necesario, pero como es comunicación HTTP, lo hice explícito.
proxy_hide_header Upgrade;
proxy_http_version 1.1;
¡A hacer curl!
Ahora, si haces 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
¡¡¡Funcionó!!!
Hoy tengo mi fiesta de despedida, ¡así que podré beber alcohol sin preocupaciones!
Hasta la próxima. Saludos.