记一次错误:由nginx 引起的错误

在做滑动图片验证码时,本地上没有错,一放线上就出现了这个下面的问题

java.io.IOException: APR error: -730054

getOutputStream() has already been called for this response

从错误日志上看,是输出流 被重用了,导致的,,然后我在就去查代码是不是哪里重用或没关闭流,一圈看下来,代码没问题

我仔细看了下返回的数据,发现数据是不完整的,我就怀疑是nginx 对大数据返回有限制,百度了下

当nginx 代理解析大量数据流时,会把数据先放在自己的缓冲区,然后一并发给客户端

如果一次请求的数据量很大, 则会有一部分数据会被忽略掉

解决方案就:修改Nginx 配置,自己定义缓存区大小

  server {
     proxy_buffers 16 512k; #自定义缓存区大小
     proxy_buffer_size 512k;

}

你可能感兴趣的:(nginx)