m2使用CloudFlare后出现 net::ERR_HTTP2_PROTOCOL_ERROR 200的问题

4.19K 浏览M2交流区

m2使用CloudFlare后出现 net::ERR_HTTP2_PROTOCOL_ERROR 200的问题

有个magento2网站使用CloudFlare做cdn缓存后,打开后台产品编辑页面的时候总是不对,始终有一个文件无法获取,发现是tinymce.min.js这个js文件加载失败failed.

控制台提示报错:net::ERR_HTTP2_PROTOCOL_ERROR 200,后面在网上搜索得到解决方案,在 nginx config server 里加上 proxy_max_temp_file_size 0

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name xxx.com;
    proxy_max_temp_file_size 0;
}

具体原因是:

nginx 把返回的文件先放到缓冲区当中,然后再返回给客户端,边收边传,不是全部接收完再传给客户端,接在 CloudFlare 上出现了问题。

参考:

https://blog.asec01.net/Nginx-HTTP2-PROTOCOL-ERROR-200/

https://www.shellj.me/2020/03/cloudflare-net-err-http2-protocol-error-200.html

1