后台返回字符串过长被nginx截断
前端用的vue后端用的java,本来没事,然后用着用着chrome就出现超时的异常,然后打开火狐,发现是返回的数据被阶段了,导致json解析失败。这个被截断的原因也是出现在nginx上,因为返回数据过大,超出了nginx默认缓冲区,所以才会被截断。在需要配置的路由下配置bufferlocation ^~/apiswr/ {proxy_pass http://ip:端口;client_max_bod
·
前端用的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;
更多推荐
已为社区贡献1条内容
所有评论(0)