怎样设置Nginx的上传文件大小

2019年10月16日 | 分类: 【技术】

【问题】

参考: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 {
		}
	}