nginx 更改配置client_max_body_size没有生效

在nginx使用过程中,上传文件的过程中,通常需要设置nginx报文大小限制。避免出现413 Request Entity Too Large。

于是奇葩的问题被我们遇到了,详细配置请参考下面。我们的问题是,无论client_max_body_size设置在哪里,nginx -s reload后,依然一直报413.多次尝试reload,始终无效。最终决定kill 进程,restart,终于好了。


由此可见,nginx reload并不一定好使。有时候,为了保险起见。restart比较靠谱。不知道别人有没有遇到同样的问题。希望对大家有帮助!~~


设置如下:

Syntax: client_max_body_size size;
Default:
client_max_body_size 1m;
Context: httpserverlocation

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;

三者到区别是:http{} 中控制着所有nginx收到的请求。而报文大小限制设置在server{}中,则控制该server收到的请求报文大小,同理,如果配置在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 {

 

 

                }

     }

你可能感兴趣的:(nginx)