Habilitar soporte para HTTP/2 y HTTP/3 en Nginx v1.27.0
Hola, soy un inútil.
Justo cuando pensé que había encontrado una casa en Tokio, volví al punto de partida, y últimamente siento que he encontrado una buena propiedad de alguna manera. En el peor de los casos, me mudaré a alguna casa compartida.
Últimamente, estoy agradecido de que los miembros de mi proyecto actual me digan: '¡Hagamos una fiesta de despedida!'
Realmente siento que he sido bendecido con buenas personas en mi vida.
Por cierto, envié una solicitud de extracción a Deno el otro día y me establecieron un hito, así que solo tengo que seguir el código fuente con calma sin prisas. Encontrar la solución óptima para el código Rust de Deno, que se ha vuelto enorme de alguna manera, y tratar de hacer los mínimos cambios posibles incluso para una función trivial, es difícil porque la documentación es como el código fuente, así que no hay más remedio que probar varias cosas.
Si no funciona, pensaré en ello cuando no funcione.
Habilitar soporte para HTTP/2 y HTTP/3 en Nginx
Mientras leía un artículo de entrevista con Rasmus Lerdorf, el desarrollador de PHP, vi que hablaba de sentir el futuro en HTTP/2, lo que me hizo pensar '¿Cómo estaba mi servidor Nginx?' y decidí implementarlo.
Parece que el soporte para HTTP/3 en Nginx es a partir de la versión v1.25, así que verifiqué la versión.
# nginx -v
nginx version: nginx/1.27.0
Parece que es compatible.
Mi Nginx no fue instalado desde pkg, sino que lo compilé yo mismo, así que creo que puede haber diferencias incluso en el mismo entorno FreeBSD.
Decidí implementarlo sin pensar en cosas complicadas por ahora.
Escritura en el archivo conf
Como es un servidor Nginx que solo funciona como proxy inverso, lo haré rápidamente.
server {
listen 443 ssl;
listen 443 quic reuseport;
listen [::]:443 quic reuseport;
http2 on;
http3 on;
server_name soulminingrig.com www.soulminingrig.com;
Creo que HTTP/3 es algo que Google está tratando de promover, y el protocolo QUIC en sí mismo fue creado por Google.
Añadir lo siguiente a la información del encabezado:
add_header Alt-Svc 'h3=":443"; ma=86400';
add_header X-Content-Type-Options nosniff;
Luego, realiza una prueba con nginx -t y, si no hay problemas, reinicia.
Como estoy trabajando como usuario root, lo ejecuto de la siguiente manera:
service nginx restart
Y parece que QUIC usa 443/UDP, así que tengo que abrir ese puerto...
Capítulo 3: HTTP/3 en detalle ~ Cómo aprovechar QUIC y lograr la aceleración
Actualmente, muchas implementaciones parecen usar el puerto UDP 443 por defecto.
Como se ve arriba,
add_header Alt-Svc 'h3=":443"; ma=86400';
Dado que el puerto configurado es el 443, parece que está bien abrir el puerto 443 y, si se cambia, abrir otro puerto.
vim /etc/pf.conf
Con esto, añade lo siguiente:
set skip on lo
exsrv1 = 167.179.75.206
~~~
# HTTP/3 Protocol
pass in inet proto udp from any to $exsrv1 port 443
Ahora, prueba con la opción -nf y luego aplica con -f.
pfctl -nf /etc/pf.conf
pfctl -f /etc/pf.conf
¿Se aplicó correctamente?
Parece que hay una forma de verificar si se aplicó con Curl, pero en estos casos, es mejor verificar desde un lugar no relacionado con mi propia red para una validación exitosa, así que lo verificaré desde el navegador.
HTTP/3 Check

¡Sí, funcionó!
Hay quienes configuran con más detalle, pero por ahora, creo que esto es suficiente.
Eso es todo por ahora. Nos vemos.