net::ERR_INCOMPLETE_CHUNKED_ENCODING问题分析与解决方法
如果传统Tomcat+jsp方式的话,这里存在三种可能:
第一种Tomcat的磁盘空间已满,查看是否因为日志过多导致;
第二种Tomcat配置请求头过于小,而jsp页面数据量超过Tomcat阈值,则响应不全导致,解决方法是点击此处,我们在Tomcat的conf文件夹里找到server.xml文件。在我们平时设置服务器的端口号配置里进行配置请求头;
第三种则可能是jsp上的变量为空报错导致的;这个时候只能查看jsp页面的变量逐步删除法排除,就是删除<% 变量 %> 这些代码。删除一次,页面记得清缓存,查看是否显示正常;
第三种情况是出现最多的,着重注意第三种
如果使用了NGINX部署方式的话,点击此处,
错误原因分析:
1.nginx配置缓存区设置过小
2.nginx的临时目录(/proxy_temp)过大或没有权限写入缓存文件
解决办法:
在nginx中的对应的反向代理配置如下内容,即可解决:
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
我的反向代理完整配置:
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到服务器的连接就能断开了,客户端从缓冲区拉取即可。