Tengine 2.2.2 配置 http2 协议出现的坑

2018-08-01 12:46:11 2482 1 技术文章

昨天本站将 nginx 配置改为支持 http2 协议,发帖,浏览帖子都很正常,但上传图片出现 504,改回 http 1.1 恢复正常,于是确定是配置 http2 造成的恶果,于是 google 搜索 "tengine http2 504" 等关键字,最终发现了阿里官方 issue:

https://github.com/alibaba/tengine/issues/1003

此 issue 作者遇到同样的情况:

从 nginx 1.10.1 升级为 tengin 2.1.2 后, 用户通过 multipart/form-data 上传文件时 如果文件大于 1M 就会上传失败 抓包分析后,发现在用户在上传大文件时,http body 内容不完整 导致 java MultipartHttpServletRequest request 拿到的 request.getFileNames() size 为 0

抓取了 tengin 与 tomcat 之间的报文,异常报文中 http body 内容异常

看这个 issue,确定是 2.2.2 的一个 BUG,接着回退到 2.2.1,问题依旧,回退到 2.2.0,问题得到解决。

在此提醒大家,如果使用 Tengine 需要配置 http2,建议不要使用 2.2.1 和 2.2.2 版本。

  • 崔亮 评论于 2019-05-23 14:05

    目前更新到 Tengine 2.3.0,问题得到解决!

您的邮箱不会被公开