HTTP/3

此功能为商业版功能

从GoEdge v1.2.0版本开启,可以为网站开启HTTP/3访问功能;在单个网站启用HTTP/3功能之前,需要在集群中启用HTTP/3功能。

启用集群HTTP/3功能

在某个集群设置 – HTTP/3设置页面中,点击”启用HTTP/3功能”,然后保存;这样集群下的网站可以自主选择是否启用HTTP/3。

HTTP3-1.png

通常不需要修改默认端口号443,你需要在你的主机安全策略或者防火墙中设置UDP 443端口为通过,这点极其重要。

启用单个网站HTTP/3功能

要想启用单个网站HTTP/3功能,你需要:

  • 你已经启用了网站的HTTPS功能,并上传了对应的SSL证书;
  • 在网站设置 – HTTPS页面点击”启用HTTP/3”,并保存,如果没有这个选项,说明你没有在对应的集群中启用HTTP/3功能。

HTTP3-2.png

测试

前提是你已经启用了浏览器的quic功能(以下介绍可能根据浏览器语言设置不同而有不同的描述):

  • Google Chrome - 在浏览器上访问 chrome://flags/#enable-quic,找到”Experimental QUIC protocol”,并启用之(Enabled)
  • Microsoft Edge - 在浏览器上访问 edge://flags/#enable-quic,找到”Experimental QUIC protocol”,并启用之(Enabled)
  • Firefox - 在浏览器上访问 about:config,然后搜索”network.http.http3.enable”,并点击对应行末尾的切换图标,启用之(true)
  • Safari - 最新版本的Safari已经自动支持HTTP/3,无需任何额外配置

浏览器设置后,可能需要清理浏览器缓存并重启后才能生效。

在网站中启用HTTP/3功能后,可以在浏览器正常访问你的网站域名,并在浏览器控制台(通常是F12快捷键)观察访问使用的协议(Protocol),如果显示h3或者HTTP/3,就说明你已经成功启用了网站的HTTP/3功能。

常见问题

为什么设置后仍然不能使用HTTP/3访问?

可能的几个原因,请依次认真检查:

  1. 你的服务器没有开放UDP 443端口(这个端口号可以在集群里修改,你如果已经改了,请将此端口号换成你改之后的端口号),首先登录你的节点服务器,检查UDP 443端口是否在监听:
    netstat -anp|grep udp|grep 443
    如果出现类似于以下的语句:
    udp6  0   0 :::443   :::*   41849/bin/edge-node 
    说明端口号正在监听,此时只需要检查你的主机安全策略管理的UDP 443端口是否开放即可;
  2. 你没有在网站中开启HTTP/3功能,请参考本文中的 “启用单个网站HTTP/3功能” 部分进行检查;
  3. 在浏览器控制台中检查响应Header中是否含有(不区分大小写) Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000 的内容,如果没有,则说明你没有在网站中开启HTTP/3功能;
  4. 检查你的浏览器是否设置了代理服务器,或者你的电脑是否设置了代理服务器,由于绝大部分代理服务器只支持TCP通讯,所以如果你的电脑上有任何代理服务器,请先停用;
  5. 尝试清空浏览器所有缓存后,关闭浏览器,再重新打开;
  6. 另外注意Websocket目前不支持HTTP/3。

一定需要开启HTTP/2才能使用HTTP/3吗?

不需要,两个是独立的不相互影响。

为什么关闭HTTP/3后访问的仍然是HTTP/3

浏览器端会记住你的HTTP/3设置,所以在单个网站关闭HTTP/3功能后,你访问到的仍然可能是HTTP/3,此时你需要清空浏览器设置并重启浏览器后重试。

GoEdge文档