前端用的vue后端用的java,本来没事,然后用着用着chrome就出现超时的异常,然后打开火狐,发现是返回的数据被阶段了,导致json解析失败。

这个被截断的原因也是出现在nginx上,因为返回数据过大,超出了nginx默认缓冲区,所以才会被截断。

在需要配置的路由下配置buffer

location ^~/apiswr/ {
            proxy_pass http://ip:端口;
			client_max_body_size 100m;
			fastcgi_buffer_size 1280k;
			fastcgi_buffers 256 128k;
        }

fastcgi_buffers:控制 nginx 最多创建 256个大小为 128K 的缓冲区,而 fastcgi_buffer_size 则是处理 Response 时第一个缓冲区的大小,不包含在前者中。

nginx upstream代理中设置了buffer,但是运行nginx的账号却没有访问buffer目录/usr/local/nginx/proxy_temp的权限

解决办法:
  让nginx以root运行,或以其他对 /usr/local/nginx/proxy_temp 具有访问权限的用户运行nginx
在nginx.conf配置文件顶部加上:
user root;

Logo

前往低代码交流专区

更多推荐