(一)需要

部署到新服务器的时候,有一个接口返回200,然而就是无奈失常显示。
排查了很久这里记录下~

(二)问题及阐明

1、HTTP返回的错误信息

NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

2、可能的谬误起因剖析:

  1. nginx配置缓存区设置过小
  2. nginx的长期目录(/proxy_temp)过大或没有权限写入缓存文件
  3. 磁盘空间有余

最终,发现是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...