Nginx一直说客户端打算发送太大的身体。谷歌和RTM让我找到了client_max_body_size。我在Nginx .conf和vhost conf中设置了200m,重启了Nginx几次,但我仍然得到错误消息。

我是不是忽略了什么?后端是php-fpm (max_post_size和max_upload_file_size是相应设置的)。


当前回答

如果你尝试了上面的选项,没有成功,你也使用IIS (iisnode)托管你的节点应用程序,把这段代码放在web上。Config帮我解决了这个问题:

这里是参考资料:https://www.inflectra.com/support/knowledgebase/kb306.aspx

此外,您可以更改允许的长度,因为现在我认为它是2GB。根据你的需要修改它。

  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>

其他回答

根据nginx文档,你可以在以下上下文中设置client_max_body_size为20m(或任何你需要的值):

context: http, server, location

如果你尝试了上面的选项,没有成功,你也使用IIS (iisnode)托管你的节点应用程序,把这段代码放在web上。Config帮我解决了这个问题:

这里是参考资料:https://www.inflectra.com/support/knowledgebase/kb306.aspx

此外,您可以更改允许的长度,因为现在我认为它是2GB。根据你的需要修改它。

  <security>
    <requestFiltering>
      <requestLimits maxAllowedContentLength="2147483648" />
    </requestFiltering>
  </security>

有同样的问题,client_max_body_size指令被忽略。

我的愚蠢错误是,我把一个文件放在了/etc/nginx/conf里面。D,不以.conf结尾。Nginx默认情况下不会加载这些。

我最近有一个类似的问题,发现client_max_body_size 0;可以解决这样的问题。这将把client_max_body_size设置为无限制。但最佳实践是改进您的代码,因此没有必要增加这个限制。

NGINX大上传终于在托管的WordPress站点上成功工作了(根据nembleton & rjha94的建议)

我想如果我对他们的建议稍加澄清,可能会对某些人有所帮助。对于初学者,请确保你已经在所有三个独立的定义块(服务器,位置和http)中包含了你增加的上传指令。每个都应该有一个单独的行条目。结果会像这样(其中…反映定义块中的其他行):

http {
    ...
    client_max_body_size 200M;
}    

(在我的ISPconfig 3设置中,这个块在/etc/nginx/nginx.conf文件中)

server {
    ...
    client_max_body_size 200M;
}

location / {
    ...
    client_max_body_size 200M;
} 

(在我的ISPconfig 3设置中,这些块在/etc/nginx/conf.d/default.conf文件中)

另外,要确保服务器的php.ini文件与这些NGINX设置一致。在我的例子中,我改变了php.ini的File_Uploads部分的设置为:

upload_max_filesize = 200M

注意:如果您正在管理ISPconfig 3设置(我的设置是在CentOS 6.3上,根据完美服务器),您将需要在几个单独的文件中管理这些条目。如果你的配置与步骤设置中的配置类似,你需要修改的NGINX conf文件位于这里:

/etc/nginx/nginx.conf
/etc/nginx/conf.d/default.conf 

我的php.ini文件位于这里:

/etc/php.ini

我继续忽略nginx.conf文件中的http{}块。显然,忽略这一点会将上传限制为1M的默认限制。在做了相关的更改之后,你还需要确保重新启动你的NGINX和PHP FastCGI Process Manager (PHP- fpm)服务。在上面的配置中,我使用以下命令:

/etc/init.d/nginx restart
/etc/init.d/php-fpm restart