nginx之206异常
场景:
前端同事疯狂发包,一天发了七八次,结果清除浏览器缓存后,页面一片空白。然后搞不定了,就说是后端的问题。(各位同学,一般这种无理的锅,我都是直接忽略;可谁TM要我的工作年限最久呢,兜兜转转还是找上了我)
分析:
nginx请求进来了,但是页面是白的。应用服务器没有任何异常日志。前端控制台206(Partial Content),部分内容,啥意思啊?
是不是nginx服务异常了,reload,无果。
是不是前端包的问题,回退,刷新,无果。
不是前端,也不是后端代码的问题,那就只能是架构的问题啦。
询问了一圈,没谁该相关配置。
我熟练的打开了google,不吹不黑,google确实好用。
说是nginx的代理缓存区太小,文件太大,无法加载全,和部分内容有点关系。
修改nginx配置,验证一下,success。
原因:
Nginx代理之后会有相应的代理缓存区,缓存区默认只有几十K,某些版本的nginx默认设置中没有相关处理,导致部分文件代理是会出现加载不全的现象,其实不仅仅是JS文件。只是因为框架的JS文件略大,所以经常出现类似问题。(摘抄自老哥)
修改配置:
在你的nginx主配置文件中在http的配置属性中,添加如下三个配置。
-
proxy_buffer_size 128k;
-
proxy_buffers 32 128k;
-
proxy_busy_buffers_size 128k;