nginx net::ERR_CONTENT_LENGTH_MISMATCH
Posted QQ_851228082
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx net::ERR_CONTENT_LENGTH_MISMATCH相关的知识,希望对你有一定的参考价值。
错误提示
错误直译过来是内容长度不匹配,就是http response header
中的content-length
与实际接收的内容大小不一致导致。
排查过程
百度了很多,大多数是因为nginx的临时文件夹没有权限导致;通过wireshark
抓包,看到是服务器端断开连接;最后想到最近虚拟服务器故障过,重启后,可能临时文件夹没有写入权限导致,最终确认是这个情况。但有必要了解一下nginx buffer机制
nginx buffer
proxy_buffers和proxy_temp_file
- 如果启用了buffer,nginx会尽可能的从proxied server读取response,将response保存到buffer(proxy_buffer_size and proxy_buffers ),如果buffer不够,则会写入磁盘的temporary file(proxy_max_temp_file_size and proxy_temp_file_write_size),然后再传给客户端;
- 默认的,临时文件夹在nginx_home/temp/proxy_temp
- proxy_buffer_size,用来存储收到的response 的第一部分,通常是response header
- proxy_buffering,指定了缓存数量和大小。
- 如果禁用buffer,只要nginx收到response,就会同步传给客户端;nginx不会尝试读取整个response,能读取的response大小由proxy_buffer_size 决定;
禁用buffer
proxy_buffering off;
参考
以上是关于nginx net::ERR_CONTENT_LENGTH_MISMATCH的主要内容,如果未能解决你的问题,请参考以下文章