net::ERR_HTTP2_PROTOCOL_ERROR

 原创    2022-12-01

Ajax请求出现错误net::ERR_HTTP2_PROTOCOL_ERROR,定位为CDN配置不合理造成。

本周遇到了Ajax请求出现错误net::ERR_HTTP2_PROTOCOL_ERROR的问题。具体的错误表现为:

  • 请求耗时较大时容易复现;
  • 针对上传特定文件类型容易复现;
  • 浏览器控制台中仅提示net::ERR_HTTP2_PROTOCOL_ERROR错误,没有收到API的响应数据;
  • 发生错误时,业务请求在服务端没有收到错误日志,且业务流程正常完成。

起初认为就是简单的Ajax请求超时问题,但在修改设置后问题依旧。后续又检查了Nginx、php等各种环境设置,修改了各种可能有影响的超时设置等尝试解决问题,几经折腾后最终定位问题:使用的CDN服务超时设置不合理。

在域名开启CDN后,当时直接采用默认配置,没有过多关注细配置细节。实际上,有动态API接口(特别是文件上传接口)的域名启用CDN后应该确保API请求全部回源,且需要将回源时间调大一些:

  • 回源TCP链接时间;
  • 回源加载时间。

相关文章:

使用CDN提升网站访问速度
防止 CDN 因 DDOS 攻击等产生高额账单
腾讯云 CDN 的 X-Cache-Lookup
CDN 流量由腾讯云切换至 Cloudflare

发表留言

您的电子邮箱地址不会被公开,必填项已用*标注。发布的留言可能不会立即公开展示,请耐心等待审核通过。