(一)需要
部署到新服务器的时候,有一个接口返回200,然而就是无奈失常显示。
排查了很久这里记录下~
(二)问题及阐明
1、HTTP返回的错误信息
NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)
2、可能的谬误起因剖析:
- nginx配置缓存区设置过小
- nginx的长期目录(/proxy_temp)过大或没有权限写入缓存文件
- 磁盘空间有余
最终,发现是nginx的缓冲区(Proxy Buffer)设置较小。
导出的内容缓存了,但缓存的不残缺,而申请的时候拿到的是缓存的内容;流不残缺,所以无奈残缺加载。
3、配置如下:
location /forecast { proxy_pass http://127.0.0.1:9999/; proxy_buffer_size 1024k; proxy_buffers 16 1024k; proxy_busy_buffers_size 2048k; proxy_temp_file_write_size 2048k;}
(三)nginx的缓冲区作用是什么?
如果客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点点数据量就间接发到客户端,非常节约性能。
有了缓冲区,积攒到一定量,再传输到客户端,缩小了Tcp申请。
相同,客户端到nginx速度慢,nginx到服务器速度快,没有缓冲区,
nginx到服务器的连贯就会始终放弃在那边,直到客户端承受结束。
有了缓冲区,返回内容放到缓冲区后,nginx到服务器的连贯就能断开了,客户端从缓冲区拉取即可。
以上
参考链接
http://nginx.org/en/docs/http...
写在最初的话
学习路上,经常会懈怠
《有想学技术须要监督的同学嘛~》
https://mp.weixin.qq.com/s/Fy...