Git Product home page Git Product logo

blog's People

Contributors

kerwin-ly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

blog's Issues

【踩坑记录-Nginx】前端请求静态文件报错net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)

问题描述:

今天在更新系统的前端镜像后,打开网址发现报了个错误:main.xx.js net::ERR_CONTENT_LENGTH_MISMATCH 206 (Partial Content)

解决办法:

通过排查大概定位到是由于js文件过大,导致Nginx中的代理缓存无法加载全部资源原因导致。

解决办法如下:
image

解释说明

  • proxy_buffering
Syntax:    proxy_buffering on | off;
Default:    proxy_buffering on;
Context:    http, server, location

该字段用于控制是否缓存代理服务器的返回。

如果为onNginx会将代理服务器返回的结果存放到缓冲区,再返回给客户端(边收边传,不是全部接收完再传给客户端)。缓存大小由proxy_buffersproxy_busy_buffers_size两个指令决定。如果缓存超出限制,一部分则会被写入到硬盘的临时文件中,临时文件由proxy_max_temp_file_sizeproxy_temp_file_write_size指令控制。

如果为offNginx会将返回结果立刻传递到客户端。如果返回结果过大,超过了Nginx中配置的proxy_buffer_size的值。Nginx将分批从代理服务器中读取返回结果,当读取的内容达到proxy_buffer_size值后,立刻返回给客户端,然后再从代理服务器获取剩余部分。

注意:如果该字段为offproxy_buffersproxy_busy_buffers_size这两个指令将会失效。 proxy_buffer_size 不受任何影响。开启状态时,需提防其缓存空间设置过大,内存被大量占用的情况发生。

  • proxy_buffer_size
Syntax:    proxy_buffer_size size;
Default:    proxy_buffer_size 4k|8k;
Context:    http, server, location

后端服务器的响应头会放到proxy_buffer_size当中,这个大小默认等于proxy_buffers当中的设置单个缓冲区的大小。

  • proxy_buffers
Syntax:    proxy_buffers number size;
Default:    proxy_buffers 8 4k|8k;
Context:    http, server, location

proxy_buffers的缓冲区大小一般会设置的比较大,以应付大网页。 proxy_buffers当中单个缓冲区的大小是由系统的内存页面大小决定的,Linux系统中一般为4k。 proxy_buffers由缓冲区数量和缓冲区大小组成的。总的大小为number*size。

若某些请求的响应过大,则超过proxy_buffers的部分将被缓冲到硬盘(缓冲目录由_temp_path指令指定), 当然这将会使读取响应的速度减慢, 影响用户体验. 可以使用proxy_max_temp_file_size指令关闭磁盘缓冲。

  • proxy_busy_buffers_size
Syntax:  proxy_busy_buffers_size size;
Default:  proxy_busy_buffers_size 8k\|16k;
Context:  http, server, location

proxy_busy_buffers_size不是独立的空间,他是proxy_buffersproxy_buffer_size的一部分。nginx会在没有完全读完后端响应的时候就开始向客户端传送数据,所以它会划出一部分缓冲区来专门向客户端传送数据(这部分的大小是由proxy_busy_buffers_size来控制的,建议为proxy_buffers中单个缓冲区大小的2倍),然后它继续从后端取数据,缓冲区满了之后就写到磁盘的临时文件中。

参考链接:

http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_buffer_size

https://segmentfault.com/a/1190000015921504

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.