生产环境 net :: ERR_INCOMPLETE_CHUNKED_ENCODING问题修复

生产环境 net :: ERR_INCOMPLETE_CHUNKED_ENCODING问题修复

题记

新系统上线一个月后,生产环境后台管理端时而出现查询失败的提示,清理Chrome缓存重新访问后正常,由于不影响业务,优先级不高就没有在发现的第一时间排查、修复,项目正常迭代后,决定去看下具体什么情况。

ERR_INCOMPLETE_CHUNKED_ENCODING

还是熟悉的味道,还是原来的配方,F12查看请求,首先分析报错信息如上所示,排查发现后台应用系统并没有日志打印,经分析确认是nginx代理问题导致的。部分微服务个应用节点通过nginx端口访问,能够正常请求接口并获取对应的响应。但是部分请求通过nginx转发,出现请求正常(响应200),一直提示上述错误 NET::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK)

nginx的缓冲区

case1

客户端到nginx速度快,nginx到服务器速度慢,没有缓冲区,一点数据量就直接发到客户端,浪费性能。
有缓冲区,数据积累到一定量,再传输到客户端,减少了tcp请求的频次。

case2

客户端到nginx速度慢,nginx到服务器速度快,没有缓冲区,
nginx到服务器的连接就会一直保持在客户端,等待接受完毕。
有缓冲区,返回内容放到缓冲区,nginx到服务器的连接就可以断开,客户端从缓冲区获取即可。

具体分析

  • 磁盘空间不足;
  • nginx配置缓冲区设置过小;
  • nginx的临时目录(/proxy_temp)没有权限写入缓存文件;

方案分析

nginx.conf中的对应的反向代理配置中调整缓冲区大小。

问题解决

生产nginx.conf配置修改
location /frontProxy/ {

    proxy_pass http://xx.xx.xx.xxx:8088/;    
    
    # 新增如下
	proxy_buffer_size 1024k;
    proxy_buffers 16 1024k;
    proxy_busy_buffers_size 2048k;
    proxy_temp_file_write_size 2048k;
}

proxy_temp文件权限分析

目录权限
  • nginx.conf文件分析
# user nginx; 权限调整
user root; 
测试环境文件分析

在这里插入图片描述

  • user root 产生的 proxy_temp所属的用户权限也是root
  • 如上文所示nginx用户是没有权限写入临时文件的;
  • 调整user root -> user nginx
    • 由于测试环境数据大小并未超限,所以未生成proxy_temp文件;
生产环境产生 proxy_temp
  • 部分请求失效,是缓冲区大小导致的,修改方案见上文;
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值