首页 > 系统相关 >开启 HTTP/3 & QUIC 在 Docker Compose+Nginx

开启 HTTP/3 & QUIC 在 Docker Compose+Nginx

时间:2023-04-08 19:22:34浏览次数:81  
标签:Compose HTTP quic nginx 443 Nginx QUIC 浏览器

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 端口

标签:Compose,HTTP,quic,nginx,443,Nginx,QUIC,浏览器
From: https://www.cnblogs.com/zengxiangzhan/p/17299057.html

相关文章

  • Centos 7 yum源安装nginx
    1.设置nginx仓库vim/etc/yum.repos.d/nginx.repo[nginx-stable]name=nginxstablerepobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]na......
  • nginx学习笔记
    一、安装安装相关依赖包yum-yinstallgccpcre-develzlibzlib-devel配置./configure--prefix=/usr/local/nginx编译和安装,完成!make&&makeinstall......
  • Qt网络编程类 http
    Qt网络编程:QNetworkRequest类 Qt网络编程:QNetworkRequest_友善啊,朋友的博客-CSDN博客Qt网络编程:QNetworkAccessManager Qt网络编程:QNetworkAccessManager_sendcustomrequest_友善啊,朋友的博客-CSDN博客......
  • 使用Golang实现Nginx代理功能
    由于业务需要实现对多个web应用做同域二级目录代理,用NGINX的又感觉太重了,而且不好做配置页面,用golang来实现代理功能支持正则表达式匹配机制支持多应用多级目录代理。支持应用子路由代理支持webapi代理支持websocket代理支持禁用缓存设置支持http、https混合使用支持/dir......
  • Nginx配置——反向代理
    Nginx配置——反向代理https://huaweicloud.csdn.net/63560389d3efff3090b58adb.html?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-7-102508463-blog-127776029.235%5Ev28%5Epc_relevant_defaul......
  • Nginx 集群搭建
    Nginx集群搭建https://huaweicloud.csdn.net/63560e7dd3efff3090b591dc.html?spm=1001.2101.3001.6650.14&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-14-117463438-blog-127292749.235%5Ev28%5Epc_relevant_default......
  • Docker-compose 到 Kubernetes 的迁移工具!
    在skippbox,我们开发了Kompose这一工具,他能够自动把DockerCompose应用转换为Kubernetes描述文件。利用一个简单的komposeup 命令,就可以在Kubernetes集群上启动Compose应用。我们非常乐于将其捐献给KubernetesIncubator。下面介绍一下这一工具的开发动机和用法......
  • Httpcontext.signIn() 执行了什么?
    asp.netcore登录的时候可以写 Httpcontext.signIn(user);这个方法,如果用cookie最后会些写cookie信息到Httpcontext.respones中。定义publicstaticTaskSignInAsync(thisHttpContextcontext,string?scheme,ClaimsPrincipalprincipal,AuthenticationProperties?p......
  • 51、K8S-流量调度-Ingress、Ingress-nginx、Dashboard
    Kubernetes学习目录1、Ingress基础1.1、简介在实际的应用中,kubenetes接受的不仅仅有内部的流量,还有外部流量,我们可以通过两种方式实现将集群外部的流量引入到集群的内部中来,从而实现外部客户的正常访问。service方式: nodePort、externalIP等service对象方式,借助于names......
  • 可以替代Nginx的web服务软件
    1.Nginx(https://nginx.org/en/)2.HAProxy(https://www.haproxy.org/)3.Caddy2(https://caddyserver.com/)4.lighttpd (https://www.lighttpd.net/)5.Traefik(https://traefik.cn/)6.ApacheTomcat(https://tomcat.apache.org/)7.envoy(https://www.envoyprox......