如何在1Panel上偷渡HTTP/3
本文 首发于 Anyeの小站,转载请取得作者同意。
前言
简介
HTTP/3 的基础即谷歌多年探索的基于 UDP 的 QUIC 协议。与 TCP 相比,使用 UDP 可以提供更大的灵活性,并且可以使 QUIC 完全于用户空间中实现——对协议实现的更新不像 TCP 那样需要绑定到操作系统更新。使用 QUIC,可以简单地将 HTTP 级别的流映射到 QUIC 流的顶部,从而继承 HTTP/2 的所有优点,而不会产生队头阻塞。
优势
- HTTP/3 利用 QUIC 加速 HTTP 请求,QUIC 提供比 TCP 和 TLS 更高的加密和性能。
- QUIC 是一种默认加密的新传输协议,旨在加快 HTTP 传输速度以及使其更加安全。
- HTTP/3 基于 UDP,如果数据包丢失,只会中断一个流,而不会中断所有流,提高了同时获取多个对象的性能。
- 支持 0-RTT,消除服务器的 TLS 确认,使后续连接的启动速度更快。
——又拍云对HTTP/3的介绍
这里就不再过多阐述HTTP/3的各种优势,直接进入部署阶段。
准备条件
- 已安装 1Panel 的服务器一台,已经正确配置好了 HTTPS 站点。
- 相关基础知识
警告!!!
OpenResty 中的 HTTP/3 模块目前是实验性的,用于生产环境请使用者自行承担风险。
部署
切换OpenResty镜像版本
在 1Panel 中,打开 应用商店 ,找到已安装的 OpenResty,点击 参数 ,编辑 ,高级设置 ,将 image 更改为 openresty/openresty:1.25.3.1-2-focal ,如:
image: openresty/openresty:1.25.3.1-2-focal
确认,重建应用。
编辑站点配置文件
对于默认站点
首先确认你的服务器是否选定了默认站点。
若未设置请跳过。
若设置了默认站点,请先进行其他站点的配置,最后再来看这一部分。
- 点击
配置进入网站设置,点击配置文件,在
listen 443 ssl http2 default_server;
的下方添加一行,注意看注释内容:
listen 443 quic reuseport default_server; # 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic default_server; # 非第一个站点写这个
一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。
-
Alt-Svc请求头的添加参考下面的部分 -
保存并重载
注意:若要取消默认站点等操作,需要先删除第1、2条参加的配置。
一键部署、运行环境、静态网站
- 点击
配置进入网站设置,点击配置文件,在
listen 443 ssl http2;
的下方添加一行,注意看注释内容:
listen 443 quic reuseport; # 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic; # 非第一个站点写这个
一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。
- 下方找到
add_header Strict-Transport-Security "max-age=31536000";
在这一条下面添加内容:
add_header Alt-Svc 'h3=":443"; ma=2592000';
- 保存并重载
反向代理站点
- 点击
配置进入网站设置,点击配置文件,在
listen 443 ssl http2;
的下方添加一行,注意看注释内容:
listen 443 quic reuseport; # 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic; # 非第一个站点写这个
一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。
- 在
基本,反向代理,点击源文,在
add_header Strict-Transport-Security "max-age=31536000";
这一条下面添加内容:
add_header Alt-Svc 'h3=":443"; ma=2592000';
- 保存并重载
若以上过程均未报错,恭喜你的配置填写正确!
开放端口
在 主机 ,防火墙 中,创建端口规则,放开 UDP 协议的 443 端口。
如果使用的是云服务器,请至安全组开放 UDP 协议的 443 端口。
检测
目前最新版本的各类浏览器均已支持 HTTP/3 的访问,可以在浏览器的开发人员工具 - 网络 - 协议中显示为 H3。
也可以通过 LiteSpeed 提供的站点 测试。
Demo
本站已开启 HTTP/3 访问能力。
相关文章:
如何在1Panel上偷渡HTTP/3
本文 首发于 Anyeの小站,转载请取得作者同意。 前言 简介 HTTP/3 的基础即谷歌多年探索的基于 UDP 的 QUIC 协议。与 TCP 相比,使用 UDP 可以提供更大的灵活性,并且可以使 QUIC 完全于用户空间中实现——对协议实现的更新不像 TCP 那样需要绑…...
Qt实用技巧:QCustomPlot做北斗GPS显示绝对位置运动轨迹和相对位置运动轨迹图的时,使图按照输入点顺序连曲线
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/136131310 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬…...
116 C++ 可变参数函数,initializer_list (初始化列表), 省略号形参
一 可变参数函数 有时候我们传递的参数是不固定的。 这种能接受非固定个数参数的函数就是可变参数函数 怎么实现呢?就要用到 initializer_list 标准库类型 该类型能够使用的前提条件是:所有的实参类型相同。 二,initializer_list(初始化列…...
强国有我社会实践公益活动在合肥市庐阳区开展
2月18日是开工第一天,阳光灿烂、春光明媚。合肥市四十五中2022级星辰(5)班部分同学在监护人的陪伴下来到庐阳区双岗街道万小店社区残疾人工作站,和工作站兄弟姐妹们共同开展“强国复兴有我”社会实践公益活动。合肥市庐阳区为民社…...
Nginx 正向代理、反向代理
文章目录 前言1. 正向代理1.1 概念1.2 逻辑图1.3 使用场景 2. 反向代理2.1 概念2.2 逻辑图2.3 使用场景 前言 正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用 1. 正向代理 1.1 概念 正向代理是一个位于客户端和目标服务器之间的代理…...
软考学习--计算机组成原理与体系结构
计算机组成原理与体系结构 数据的表示 进制转换 R 进制转换为 10 进制–按权展开法 10进制转换为2进制 原码 反码 补码 移码 原码 :数字的二进制表示反码 : 正数的反码等于原码,负数的反码等于原码取反补码: 正数的补码等…...
fish终端下conda activate失败
【问题】fish终端下激活conda环境报错: >> conda activate base CondaError: Run conda init before conda activate ## 然而运行 conda init fish 仍旧无法解决【解决】 参考:https://github.com/conda/conda/issues/11079 方法一…...
FPGA之移位寄存器
SLICEM中的LUT可以配置为32位移位寄存器,而无需使用slice中可用的触发器。以这种方式使用,每个LUT 可以将串 行数据延迟 1 到 32 个时钟周期。移入D (DI1 LUT 引脚)和移出 Q31(MC31 LUT 引脚)线路将LUT级联,以形成更大…...
Android Compose Material3 ModalNavigationDrawer 抽屉的使用(处理了一些坑)
Android Compose Material3 ModalNavigationDrawer 抽屉的使用(处理了一些坑) val drawerState rememberDrawerState(initialValue DrawerValue.Closed) val scope rememberCoroutineScope()ModalNavigationDrawer(drawerState drawerState,drawerC…...
golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么? 答题思路 select —> 让 Goroutine同时等待多个 Channel 可读或者可写 —> Goroutine —> 调度器调度 —> 资源竞争 —> 不稳定、抖动 在 Go 中&#…...
VSCODE上使用python_Django
接上篇 https://blog.csdn.net/weixin_44741835/article/details/136135996?csdn_share_tail%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22136135996%22%2C%22source%22%3A%22weixin_44741835%22%7D VSCODE官网: Editing Python …...
探索IDE的世界:什么是IDE?以及适合新手的IDE推荐
引言 在编程的世界里,集成开发环境(IDE)是我们日常工作的重要工具。无论是初学者还是经验丰富的开发者,一个好的IDE都能极大地提高我们的编程效率。那么,什么是IDE呢?对于新手来说,又应该选择哪…...
DoRA(权重分解低秩适应):一种新颖的模型微调方法
来自:小互 DoRA(权重分解低秩适应):一种新颖的模型微调方法 DoRA在LoRA的基础上进一步发展,通过将预训练权重分解为“幅度”和“方向”两个部分进行微调。 这种权重分解方法允许DoRA更精细地控制模型的学习过程&…...
centos7.9 搭建k8s
K3s -轻量级Kubernetes K3s 是轻量级的 Kubernetes。K3s 易于安装,仅需要 Kubernetes 内存的一半,所有组件都在一个小于 100 MB 的二进制文件中。 为什么叫 K3s? 我们希望安装的 Kubernetes 只占用一半的内存。Kubernetes 是一个 10 个字母的单词&am…...
使用vite创建项目
NPM npm create vitelatest Yarn yarn create vite PNPM pnpm create vite Bun bunx create-vite 安装sass npm add -D sass 安装less npm add -D less vite官方中文文档:Vite | 下一代的前端工具链 (vitejs.dev)...
EXTI外部中断
? 难点:中断向量表、看门狗、NVIC的优先级位?EXTI框图? ------------------------ 中断系统 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源)--->例如:…...
小肥柴慢慢手写数据结构(C篇)(5-4 中场小结)
小肥柴慢慢学习数据结构笔记(C篇)(5-4 中场小结) 目录5-14 再看数据结构的基础问题5-15 接下来关于Tree你还需要学习和了解的内容参考文献和资料 目录 5-14 再看数据结构的基础问题 假设前面讨论的所有内容大家都已经自己编码实…...
flutter 功能
flutter功能 带缓存的tab切换功能 使用PageController进行对应tab的widget缓存 late PageController _keepActiveVC;///当前使用的视图索引late int _index;late PageController _keepActiveVC;/// 所有视图final List<Widget> _bodys [];overridevoid initState() {…...
Sql Server 存储过程
一、创建存储过程 USE [数据库名称] GO /****** Object: StoredProcedure [dbo].[存储过程名称] Script Date: 2024/2/19 9:47:49 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- -- Author: <Author,,Name> -- Create date: <Create Dat…...
二.重新回炉Spring Framework:Spring Framework主要组件概览
1.写在前面的话 这里主要简单说一下Spring Framework的几个核心组件的总体情况。为了比较直观,这里使用了ClassPathXmlApplicationContext的类图来进行说明。它基本上包含了 IoC 体系中大部分的核心类和接口。类图如下图所示: 2.Resource 组件体系 R…...
如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南
如何通过Superalgos教育模块快速掌握算法交易:新手入门完整指南 【免费下载链接】Superalgos Superalgos/Superalgos: 是一个开源的分布式社交网络分析和数据挖掘平台。适合对大数据分析、机器学习、区块链以及分布式系统有兴趣的开发者。 项目地址: https://gitc…...
如何让鼠标和触控板和平共处:Scroll Reverser实现设备独立控制的效率革命
如何让鼠标和触控板和平共处:Scroll Reverser实现设备独立控制的效率革命 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 在多设备协同办公成为常态的今天࿰…...
Python自动化办公:3种PDF水印处理技巧(附完整代码)
Python自动化办公:3种PDF水印处理技巧(附完整代码) 在数字化办公场景中,PDF文档的水印处理已成为高频需求。无论是合同归档需要添加版权标识,还是内部文件流转需清除敏感标记,传统手动操作既耗时又易出错。…...
Qwen3-Embedding国产化部署
从单一型人才到AI带领下的复合型人才 1.1 传统职能的终结 传统软件公司怎么干的? 销售、售前、交付、研发、市场、运维——各司其职,职能清晰。看起来很专业,但实际上是什么?一堆冗余的角色在等活干。 这不是高效,这是…...
等保测评必看!用组策略批量关闭445/139端口(域环境适用版)
企业域环境下批量关闭高危端口的组策略实战指南 在等保测评和日常安全运维中,445、139、135等端口因其历史漏洞和潜在风险,常被列为必须管控的高危端口。对于拥有数百甚至上千台终端的中大型企业来说,逐台手动配置不仅效率低下,更…...
nli-distilroberta-base代码实例:Python调用DistilRoBERTa实现Entailment识别
nli-distilroberta-base代码实例:Python调用DistilRoBERTa实现Entailment识别 1. 项目概述 自然语言推理(Natural Language Inference, NLI)是自然语言处理中的一项重要任务,用于判断两个句子之间的逻辑关系。nli-distilroberta-base是基于DistilRoBER…...
效率提升:基于快马平台快速集成openclaw开发局域网协作工具
最近在团队协作开发中遇到了一个痛点:每次新成员加入局域网时,都需要手动配置设备信息才能互相访问,文件共享和实时沟通也依赖第三方工具,效率很低。于是尝试用openclaw结合InsCode(快马)平台快速搭建了一套本地化协作工具&#x…...
蓄电池与超级电容混合储能微电网的未讲解部分总结
蓄电池 超级电容混合储能微电网 没有讲解搞离网微电网的都懂,储能这块一直是卡脖子的事儿——单独堆蓄电池吧,遇到村里突然开个打米机、抽水泵这种大负载,瞬间电流顶上去,电瓶寿命唰唰掉;全上超级电容呢,确…...
SEO_网站SEO诊断与快速优化解决办法分享
<h2>SEO诊断:了解你的网站现状,为优化铺路</h2> <p>在当今数字化时代,拥有一个高效、优化良好的网站是任何企业或个人成功的关键。网站SEO诊断是这一过程中的重要步骤。通过网站SEO诊断,我们可以全面了解你的网…...
保姆级避坑指南:Ubuntu系统下Hadoop HA集群搭建,我踩过的那些SSH和配置文件的“坑”
Ubuntu下Hadoop HA集群搭建:那些教科书不会告诉你的实战陷阱 第一次在Ubuntu上搭建Hadoop HA集群时,我天真地以为照着官方文档就能顺利跑起来。直到SSH连接莫名其妙失败、JournalNode权限报错刷屏、ZKFC死活不启动时,才明白为什么有人说大数据…...
