问题背景:
今天收到一个接口在遇到500错误, 但请求body为空时,服务可以收到请求,
正常发送大数据,大约1.6万个字符,出现500错误,但服务并没有挂掉.去查看nginx的error.log ,发现var/lib/nginx/tmp/client_body/0000000018" failed (13: Permission denied)错误,实际原因是因为 nginx缓冲区不能处理对应数据量, 所以会在上边路径创建临时文件进行处理.
但Nginx用户并没有此权限. 775了以后也不行(应该是哪里没有处理好).
解决办法:
需要设置请求体缓冲区大小 client_body_buffer_size 128k; 可以在http,location等作用域下设置,下为示例
http {
2 ...
3 # 或者在 server 块内
4 server {
5 listen 80;
6 server_name localhost;
7
8 # 设置请求体缓冲区大小
9 client_body_buffer_size 128k;
10
11 # 其他配置...
12 }
13}
最终解决办法应该 对较大json数据进行压缩
以下为网上找到的一片文章截图.链接无法复制.