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;

参考

Express and nginx net::ERR_CONTENT_LENGTH_MISMATCH

以上是关于nginx net::ERR_CONTENT_LENGTH_MISMATCH的主要内容,如果未能解决你的问题,请参考以下文章

死磕nginx系列

Nginx一Nginx服务器搭建

nginx 如何检测配置文件的正确性

nginx安装和常见的配置

nginx简介

Nginx 学习导航