今天新上了一个demo网站,使用了 CloudFlare 做 CDN,但打开页面的时候总是不对,始终有一个文件无法获取,报错: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 example.com;
proxy_max_temp_file_size 0;
}
原因呢 nginx 把返回的文件先放到缓冲区当中,然后再返回给客户端,边收边传,不是全部接收完再传给客户端,接在 CloudFlare 上出现了问题。