如何在1Panel上偷渡HTTP/3

本文介绍了如何在OpenResty环境中部署和配置HTTP/3,包括QUIC的优势、准备工作、不同类型的站点配置以及端口开放。读者可以了解如何实现在默认站点、静态网站和反向代理场景下的HTTP/3支持。
摘要由CSDN通过智能技术生成

本文 首发于 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 访问能力。

  • 33
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anyexyz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值