最近在使用Ferron Web Server的时候遇到几个问题,记录下解决办法。

编辑Ferron配置文件:

nano /etc/ferron.kdl


上传速度慢,增加HTTP2窗口大小(单位字节)即可,streams(多路复用)也可以增加,但好像这个streams的配置对上传速度的影响不明显:

h2_initial_window_size 512000000
h2_max_concurrent_streams 256


上传大文件失败,浏览器控制台报错误的HTTP2协议(ERR_HTTP2_PROTOCOL_ERROR),服务器端的Ferron日志内没有有用的信息。

排查了半天发现是Ferron默认的超时时间(单位毫秒)配置太短导致,因为上传速度比较慢,触发了超时,Ferron把连接重置了,解决办法很简单把超时时间改长一点或者关闭:

timeout 21600000 // 6小时
timeout #false // 关闭


上面提到的配置建议直接应用全局:

* {
    h2_initial_window_size 512000000
    h2_max_concurrent_streams 256
    timeout 21600000
    ...
}


重载配置使其生效:

systemctl reload ferron.service


参考Ferron文档:https://ferron.sh/docs/configuration-kdl