【问题】
参考:https://blog.csdn.net/li396864285/article/details/53522828
nginx服务器卓上传文件时,如果超出报文大小限制,则会报错:413 Request Entity Too Large
问题:无论client_max_body_size设置在哪里,nginx -s reload后,依然一直报413.多次尝试reload,始终无效。
方法:kill 进程,restart,终于好了。可见,nginx reload并不一定奏效。restart比较靠谱。
【设置】
语法:
client_max_body_size 1m;
位置:http, server, location
Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field.
If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client.
Please be aware that browsers cannot correctly display this error.
Setting size to 0 disables checking of client request body size.
在http{ }中设置:client_max_body_size 20m;
在server{ }中设置:client_max_body_size 20m;
在location{ }中设置:client_max_body_size 20m;
三者到区别是:
1. http{} 中控制着所有nginx收到的请求。
2. 报文大小限制设置在server{}中,则控制该server收到的请求报文大小,
3. 如果配置在location中,则报文大小限制,只对匹配了location 路由规则的请求生效。
http { #控制全局nginx所有请求报文大小 client_max_body_size 20m; server { #控制该server的所有请求报文大小 client_max_body_size 20m; location a { } location b { #控制满足该路由规则的请求报文大小 client_max_body_size 20m; } } server { } }