如何在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

确认,重建应用。

编辑站点配置文件

对于默认站点

首先确认你的服务器是否选定了默认站点。

若未设置请跳过。

若设置了默认站点,请先进行其他站点的配置,最后再来看这一部分。

  1. 点击 配置 进入网站设置,点击 配置文件 ,在
listen 443 ssl http2 default_server; 

的下方添加一行,注意看注释内容:

listen 443 quic reuseport default_server;	# 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic default_server;	# 非第一个站点写这个

一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。

  1. Alt-Svc 请求头的添加参考下面的部分

  2. 保存并重载

注意:若要取消默认站点等操作,需要先删除第1、2条参加的配置。

一键部署、运行环境、静态网站
  1. 点击 配置 进入网站设置,点击 配置文件 ,在
listen 443 ssl http2;

的下方添加一行,注意看注释内容:

listen 443 quic reuseport;	# 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic;	# 非第一个站点写这个

一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。

  1. 下方找到
add_header Strict-Transport-Security "max-age=31536000"; 

在这一条下面添加内容:

add_header Alt-Svc 'h3=":443"; ma=2592000';
  1. 保存并重载
反向代理站点
  1. 点击 配置 进入网站设置,点击 配置文件 ,在
listen 443 ssl http2;

的下方添加一行,注意看注释内容:

listen 443 quic reuseport;	# 配置HTTP/3的第一个站点写这个,建议设置在根域名站点上。
listen 443 quic;	# 非第一个站点写这个

一个 OpenResty 的完整配置文件中只能出现一次 reuseport 参数。

  1. 基本反向代理 ,点击 源文 ,在
add_header Strict-Transport-Security "max-age=31536000"; 

这一条下面添加内容:

add_header Alt-Svc 'h3=":443"; ma=2592000';
  1. 保存并重载

若以上过程均未报错,恭喜你的配置填写正确!

开放端口

主机防火墙 中,创建端口规则,放开 UDP 协议的 443 端口。

如果使用的是云服务器,请至安全组开放 UDP 协议的 443 端口。

检测

目前最新版本的各类浏览器均已支持 HTTP/3 的访问,可以在浏览器的开发人员工具 - 网络 - 协议中显示为 H3。

也可以通过 LiteSpeed 提供的站点 测试。

Demo

本站已开启 HTTP/3 访问能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/689564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端win10如何设置固定ip(简单明了)

1、右击这个 2、点击属性 3、双击协议版本4设置成以下就ok

原生微信小程序开发记录

1. 拿到项目 先构建 2.小程序与普通网页开发的区别 网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中。网页开发者可以使用到各种浏览…

【HarmonyOS】鸿蒙开发之Slider组件——第3.5章

组件应用场景: 设备音量大小,调节屏幕亮度等需求 slider组件内options属性简介 value:滑动条当前进度值。 min:设置滑动条设置最小值。 max:设置滑动条设置最大值,默认为 100 。 step:设置滑动条滑动跳动…

【npm】npm镜像源及命令

淘宝镜像源 npm config set registry https://registry.npm.taobao.org (旧版,已到期) 淘宝中国镜像源 npm config set registry https://registry.npmmirror.com (新版) 腾讯云镜像源 npm config set registry h…

Linux命令-bzmore命令(查看bzip2压缩过的文本文件的内容)

说明 bzmore命令 用于查看bzip2压缩过的文本文件的内容,当下一屏显示不下时可以实现分屏显示。 语法 bzmore(参数)参数 文件:指定要分屏显示的.bz2压缩包。

Python从进阶到高级—通俗易懂版

Python从进阶到高级—通俗易懂版 # # Author : Mikigo # Time : 2021/12/23 # 一、简介 Python 进阶是我一直很想写的,作为自己学习的记录,过去自己在看一些代码的时候经常会困惑,看不懂,然后自己去查资料、看书籍&#xff0…

JAVA之HashMap详解

HashMap 1. 设计原理 HashMap 基于哈希表的 Map 接口实现,是以 key-value 存储形式存在,即主要用来存放键值对。HashMap 的实现不是同步的,这意味着它不是线程安全的。它的 key、value 都可以为 null,此外,HashMap 中…

appium实现自动化测试原理

目录 1、Appium原理 1.1、Android Appium原理图文解析 1.1.2、原理详解 1.1.2.1、脚本端 1.1.2.2、appium-server 1.1.2.3、中间件bootstrap.jar 1.1.2.4、驱动引擎uiautomator 1.2、 IOS Appium原理 1、Appium原理 1.1、Android Appium原理图文解析 执行测试脚本全过…

C#,二进制数的按位交换(Bits swap)的算法与源代码

数字在指定位置指定位数的交换是常见算法。 1 源程序 using System; using System.Text; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer.Algorithm { public static partial class Algorithm_Gallery { /// <…

使用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官方中文文档&#xff1a;Vite | 下一代的前端工具链 (vitejs.dev)

Fabric V2.5 test-network启动日志分析

背景 分析Fabric网络的启动日志可以帮我们理解搭建区块链网络的过程。本文对输出日志进行详细的分析。 启动网络与创建通道 # verbose 可以输出更详细的日志。 ./network.sh up createChannel -verbose# 使用本机安装的docker and docker-compose Using docker and docker-c…

用实例详解Java中的类、对象、继承及多态性,一文理解Java类和对象、多态性的概念

Java中的类、对象、继承及多态性详解 Java作为一门面向对象的编程语言&#xff0c;其核心概念包括类、对象、继承以及多态性。这些概念是Java编程的基础&#xff0c;理解和掌握它们对于编写高效、可维护的Java代码至关重要。本文将结合实例详细讲解这些概念&#xff0c;并解释…

专业140+总分420+南京信息工程大学811信号与系统考研经验南信大电子信息与通信工程,真题,大纲,参考书

今年顺利被南信大电子信息录取&#xff0c;初试420&#xff0c;专业811信号与系统140&#xff08;Jenny老师辅导班上140很多&#xff0c;真是大佬云集&#xff09;&#xff0c;今年应该是南信大电子信息最卷的一年&#xff0c;复试线比往年提高了很多&#xff0c;录取平均分380…

扭蛋机小程序开发:发展优势

商场中精美的扭蛋机一直都是年轻人的心头好&#xff0c;目前&#xff0c;扭蛋机商品也不在局限于各种小型玩具&#xff0c;也逐渐与各类热门IP合作&#xff0c;打造出了各类手办、周边等&#xff0c;深受各个年龄层的喜爱。 如今&#xff0c;扭蛋机在互联网的推动下&#xff0…

算法的基本概念

设么是算法&#xff1f; 什么是好的算法/ 什么是算法&#xff1a; 量水的问题&#xff1a; 方案如下&#xff1a;&#xff08;核心思路就是两个桶差值为2&#xff0c;两次差值为4&#xff0c;7-(5-4) 6&#xff09; 算法&#xff1a;准确描述的 “操作步骤 (问题求解步骤)”&…

数据结构中图的概念以及遍历算法的实现

在数据结构中&#xff0c;图&#xff08;Graph&#xff09;是由节点&#xff08;Vertex&#xff09;和连接节点的边&#xff08;Edge&#xff09;组成的一种非线性数据结构。图可以用来表示各种实际问题中的关系和连接&#xff0c;如社交网络、道路网络、电路等。 图由两个主要…

MFC写入文件中文乱码解决办法

&#x1f482; 个人主页:pp不会算法^ v ^ &#x1f91f; 版权: 本文由【pp不会算法v】原创、在CSDN首发、需要转载请联系博主 &#x1f4ac; 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦 产生原因: visual studio的默认编码是Unicode&#xff0c;但是tx…

2023年全球架构师峰会(ArchSummit北京站2023):核心内容与学习收获(附大会核心PPT下载)

本次峰会是一场集结了全球顶级技术专家和行业领袖的盛会。作为一年一度的重要技术交流活动&#xff0c;本次峰会聚焦当前及未来软件架构的发展趋势、技术挑战与创新实践&#xff0c;旨在为参会者提供一个深度交流、学习与合作的平台。在为期两天的会议中&#xff0c;与会者不仅…

SQL Developer 小贴士:Unshared Worksheet

在Oracle SQL Developer中&#xff0c;最常用的功能应该是SQL Worksheet&#xff0c;或Worksheet。 可以创建两类Worksheet&#xff0c;即Worksheet和Unshared Worksheets。前者是共享数据库连接的&#xff0c;后者会单独创建自己的连接。前者的快捷键是AltF10&#xff1b;后者…

ACK One:构建混合云同城容灾系统

作者&#xff1a;蔡靖 对于当前业务运行在 IDC 内的 Kubernetes 集群中&#xff0c;希望通过云计算为云下业务提供同城灾备的高可用冗余能力&#xff0c;可利用阿里云分布式云容器平台 ACK One [ 1] 来提供统一得流量、应用和集群管理&#xff0c;实现业务流量的多集群路由和灾…