如何在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…...
WordPress Playground部署实战:从开发到生产的完整流程指南
WordPress Playground部署实战:从开发到生产的完整流程指南 【免费下载链接】wordpress-playground Run WordPress in the browser via WebAssembly PHP 项目地址: https://gitcode.com/gh_mirrors/wo/wordpress-playground WordPress Playground 是一个革命…...
STM32H743实战:用SN65HVD230驱动14个伺服电机,1M波特率稳如老狗
STM32H743与SN65HVD230构建高密度CANopen伺服控制系统的工程实践 在工业自动化与机器人控制领域,多轴协同运动控制对总线系统的实时性和稳定性提出了严苛要求。本文将深入剖析基于STM32H743微控制器与SN65HVD230 CAN收发器搭建的高密度伺服控制系统,分享…...
基于Google App Engine构建物联网能耗监测系统:从传感器到可视化全栈实践
1. 项目概述与核心价值如果你和我一样,对家里或办公室里那些“电老虎”设备到底消耗了多少能源感到好奇,甚至想为节能减排做点贡献,那么自己动手搭建一个能耗监测系统会是一个极具成就感的项目。这不仅仅是技术上的挑战,更是一种将…...
终极解决方案:NoSleep防休眠工具让你的Windows永不休眠
终极解决方案:NoSleep防休眠工具让你的Windows永不休眠 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 你是否曾经遇到过这样的困扰?深夜下载大型文件到…...
找工作简历模板
大三想找工作的时候第一时间是写简历,然后发现好多软件和网站的简历模板都需要会员或者模板费,于是自己写了个markdown模板 下面这个是示例 <div align"center"> <!-- 右上角照片 --> # Name <div style"font-size: 14px…...
LabVIEW虚拟仪表:数据流编程与测控应用的核心交互范式
1. 项目概述:为什么虚拟仪表是LabVIEW的灵魂如果你用过LabVIEW,或者哪怕只是看过它的界面,第一印象大概率是那些花花绿绿的旋钮、开关、仪表盘和波形图。很多人觉得这就是LabVIEW的“皮肤”,一个为了让程序看起来像真实仪器而做的…...
英雄联盟个性化改造神器:3分钟打造专属游戏身份
英雄联盟个性化改造神器:3分钟打造专属游戏身份 【免费下载链接】LeaguePrank 项目地址: https://gitcode.com/gh_mirrors/le/LeaguePrank 还在为千篇一律的英雄联盟个人资料感到乏味吗?想要在好友面前展示与众不同的游戏身份却苦于官方限制&…...
从零到一:在VMware中部署银河麒麟V10桌面版全流程实战
1. 环境准备:搭建你的虚拟实验室 在开始安装银河麒麟V10之前,我们需要先准备好虚拟化环境。就像装修房子前要准备好工具一样,这个步骤决定了后续安装的顺畅程度。我建议使用VMware Workstation Pro 16.x版本,这个版本对国产操作系…...
Animockup用户界面设计解析:现代化暗色主题与交互体验优化
Animockup用户界面设计解析:现代化暗色主题与交互体验优化 【免费下载链接】animockup Create animated mockups in the browser 🔥 项目地址: https://gitcode.com/gh_mirrors/an/animockup Animockup是一款能够在浏览器中创建动画原型的强大工具…...
量子计算中SIMD编译优化与离子阱架构实践
1. 量子计算中的SIMD编译优化概述量子计算正逐步从理论走向实践,而离子阱架构因其长相干时间和高保真度操作成为当前最有前景的物理实现方案之一。在传统量子编译器中,指令调度往往采用串行执行模式,导致离子传输和量子门操作存在大量等待时间…...
