解决CF Tunnels上传文件失败的全程记录

前因

  1. 将家宽(有公网,常规Web端口被封禁)NAS部署的服务从腾讯EO迁移到Cloudflare(简称cf),采用cf tunnels开放内网的形式。
  2. 通过Docker部署cf tunnels。
  3. 购买另一个域名,设置IP优选,部署个人博客网站(目前仅对自己开放)。

问题点:上传文件一直失败

  1. 上传文件图片作为博文封面失败,在openlist、minio上同样失败。
  2. 直接通过端口访问博客可正常上传。
  3. 通过加速域名访问时,上传功能失效。

解决过程

  1. 修改cf配置:WAF跳过、https、上传文件大小设为100M,超时时间设为120s,无效果。
  2. 修改nginx配置,发现无用,考虑到源站能上传,nginx无问题,停止此操作。
  3. 博客代码切片上传,每个切片上传时间至少30s,速度慢。
  4. 优化代码,减少接口调用时间,存储原图和webp图,更换类库解决速度问题。
  5. 尝试将上传接口改为源地址接口,发现https调用http报错,且不想配置ssl证书。
  6. 查看博客后台日志,发现管道在接口执行前已超时,怀疑程序在接收文件时被中止。
  7. 多次尝试上传1mb文件,速度慢,怀疑是CDN和服务器网络问题。

最终解决方案

  1. 关闭服务器clash,无效果,怀疑tunnels限速,搜索解决方案,在V2EX找到建议,添加启动参数--protocol http2
  2. 重新测试上传,飞牛界面显示下载速度提升至1M/s,问题解决。

结论

解决方案可能是重启Tunnels或添加--protocol http2参数。

感谢

感谢大家的帮助,分享此问题解决全过程。虽然曲折,但最终达成目标,坚持使用cf tunnels。

链接

  • [](https:///t/topic/1427702) ( - )

标签: none

评论已关闭