decem
1
我用1panel的openresty做反代服务器使用
加上https证书后,有个服务的静态文件打开不开了,浏览器上报 ERR_HTTP2_PROTOCOL_ERROR错误
切换到http访问,不加证书全部正常。
逛过坛子,换了浏览器、修改浏览器配置都试过了,仍然不行。
之后手动搭nginx做反代加证书是可以正常使用的。
用nginx proxy manager做反代,如果开启http/2.0 suppose 就会出现相同故障,关闭http2.0支持就可以正常访问。
于是,又折腾1panel,尝试过手动修改配置文件删掉http2、手动添加http2_disabled on,都不能解决这个问题。
有大神帮忙解决下,这可能是openresty的bug。
配置截图如下:
反代的这台主机里有一个nginx
/static是一个静态文件的目录
防火墙已关闭,waf关闭,gzip压缩关闭
1pane版本:v1.10.9-lts
openresty版本:1.21.4.3-2-2-focal
这种情况可能是 IP 被拉黑,需要先重启 openresty ,你先关闭 WAF ,然后重启 Openresty ,然后看一下日志
decem
3
这个操作已经尝试过了,已经排除IP被拉黑的可能。
首先,在openresty刚刚安装好后就关闭了WAF,理论上之后加入的反代网站应该不会受WAF影响。
今天又做了排查,我怀疑是开启HTTPS后无法关闭HTTP2.0协议导致的,我尝试了在配置文件的listen字段中去掉HTTP2配置,但是并没有效果。
本来这个静态请求在我的业务服务器上就不支持http2.0协议
日志中显示的/static路径的请求返回值是200,可是我的应用服务器上没有接收到相关的请求,也就是说这个请求被截断了。openresty日志显示这些请求的协议是HTTP 2.0协议,而且我的服务提供的网页大部分内容是可以正常显示的,只有部分静态文件无法访问,其他ajax请求都正常。