HTTP/3 基于 UDP 的 QUIC 协议,多路复用安全传输
HTTP/1.1 和 HTTP/2 都将 TCP 用作其传输协议
HTTP/3 和 QUIC 具有很多优势:
1.第一个请求的响应时间更短。在客户端和服务器之间以较少的往返次数协商连接,第一个请求会更快地到达服务器。
2.改进了发生连接数据包丢失时的体验。 HTTP/2 通过一个 TCP 连接多路复用多个请求。 如果在连接时发生数据包丢失,会影响所有请求。 这个问题称为“队头阻塞”。 由于 QUIC 提供本机多路复用,因此丢失的数据包只会影响已丢失数据的请求。
3.支持在网络之间转换。对于移动设备非常有用,因为在移动设备更改位置时,在 WIFI 和移动电话网络之间切换是很常见的。 目前,在切换网络时,HTTP/1.1 和 HTTP/2 连接会失败并提示错误。 应用或 Web 浏览器必须重试任何失败的 HTTP 请求。 HTTP/3 让应用或 Web 浏览器在网络发生更改时可以无缝地继续
浏览器端 开启 HTTP/3 & QUIC
谷歌Chrome浏览器 访问:chrome://flags/
启用:Experimental QUIC protocol (enable-quic)
微软新版Edge浏览器 访问:edge://flags
启用:Experimental QUIC protocol 设置为“Enabled”
火狐Firefox浏览器 访问:about:config
启用:network.http.http3.enabled
测试是否已经支持 QUIC:
https://quic.nginx.org/
https://quic.nginx.org/quic.html
https://cloudflare-quic.com/
测试 网站 是否支持
https://http3check.net/
https://geekflare.com/tools/http3-test
服务器端 开启
docker-compose.yml
services:
nginx:
image: registry.gitlab.com/dasskelett/nginx-quic-docker/nginx-quic:latest
container_name: nginx-quic
restart: always
ports:
- "80:80"
- "443:443/tcp"
- "443:443/udp"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- /home/log:/var/log/nginx
- /home/www:/usr/share/nginx/html
- /home/sslcrt/1_www.xxx.com.pem:/etc/nginx/cert.pem:ro
- /home/sslcrt/2_www.xxx.com.key:/etc/nginx/cert.key:ro
nginx.conf
server {
listen 443 quic reuseport;
listen 443 ssl http2;
ssl_protocols TLSv1.3 TLSv1.2 TLSv1.1 TLSv1;
location / {
add_header Alt-Svc 'h3=":443"; ma=86400';
}
}
防风墙 添加 443 udp 端口
原文链接:https://www.cnblogs.com/zengxiangzhan/p/17299057.html
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:开启 HTTP/3 & QUIC 在 Docker Compose+Nginx - Python技术站