当前位置: 首页 > news >正文

如何在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.lryc.cn/news/301950.html

相关文章:

  • Qt实用技巧:QCustomPlot做北斗GPS显示绝对位置运动轨迹和相对位置运动轨迹图的时,使图按照输入点顺序连曲线
  • 116 C++ 可变参数函数,initializer_list (初始化列表), 省略号形参
  • 强国有我社会实践公益活动在合肥市庐阳区开展
  • Nginx 正向代理、反向代理
  • 软考学习--计算机组成原理与体系结构
  • fish终端下conda activate失败
  • FPGA之移位寄存器
  • Android Compose Material3 ModalNavigationDrawer 抽屉的使用(处理了一些坑)
  • golang select两个channel性能稳定,三个channel时性能会发生抖动,为什么?
  • VSCODE上使用python_Django
  • 探索IDE的世界:什么是IDE?以及适合新手的IDE推荐
  • DoRA(权重分解低秩适应):一种新颖的模型微调方法
  • centos7.9 搭建k8s
  • 使用vite创建项目
  • EXTI外部中断
  • 小肥柴慢慢手写数据结构(C篇)(5-4 中场小结)
  • flutter 功能
  • Sql Server 存储过程
  • 二.重新回炉Spring Framework:Spring Framework主要组件概览
  • Open CASCADE学习|曲线向曲面投影
  • 怎样连接局域网?
  • OpenAI 发布文生视频大模型 Sora,AI 视频要变天了,视频创作重新洗牌!AGI 还远吗?
  • java基础day01
  • 读十堂极简人工智能课笔记06_自然语言处理
  • Linux文件信息,drwxr-xr-x. 2 root root 6 Jan 30 17:42 Desktop
  • 深入理解Promise:用法和面试问题解析
  • css2背景
  • KUKA库卡机器人编程语言是什么?
  • Django学习全纪录:Django视图和路由的配置,应用的创建以及注册
  • LabVIEW卫星电视接收仿真系统