Nginx一直说客户端打算发送太大的身体。谷歌和RTM让我找到了client_max_body_size。我在Nginx .conf和vhost conf中设置了200m,重启了Nginx几次,但我仍然得到错误消息。
我是不是忽略了什么?后端是php-fpm (max_post_size和max_upload_file_size是相应设置的)。
Nginx一直说客户端打算发送太大的身体。谷歌和RTM让我找到了client_max_body_size。我在Nginx .conf和vhost conf中设置了200m,重启了Nginx几次,但我仍然得到错误消息。
我是不是忽略了什么?后端是php-fpm (max_post_size和max_upload_file_size是相应设置的)。
当前回答
下面的配置对我有用。注意,我只设置client_max_body_size 50M;曾经,与别人所说的相反……
文件:/etc/nginx/conf.d/sites.conf
server {
listen 80 default_server;
server_name portal.myserver.com;
return 301 https://$host$request_uri;
}
server {
resolver 127.0.0.11 valid=30s;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /secret/portal.myserver.com.crt;
ssl_certificate_key /secret/portal.myserver.com.pem;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server_name portal.myserver.com;
client_max_body_size 50M;
location /fileserver/ {
set $upstream http://fileserver:6976;
proxy_pass $upstream;
}
}
其他回答
我遇到了同样的问题,但我发现它与nginx无关。我使用nodejs作为后端服务器,使用nginx作为反向代理,413代码是由节点服务器触发的。节点使用koa解析正文。Koa限制url编码的长度。
formLimit: url编码体的限制。如果主体最终大于此限制,则返回413错误代码。默认为56kb。
将formLimit设置为更大可以解决这个问题。
假设你已经在其他答案中设置了client_max_body_size和各种PHP设置(upload_max_filesize / post_max_size等),然后重新启动或重新加载NGINX和PHP,没有任何结果,运行这个…
nginx -
这会让你在NGINX配置中出现任何未解决的错误。在我的情况下,我在413错误中挣扎了一整天,才意识到NGINX配置中还有其他一些未解决的SSL错误(certs的错误路径)需要更正。一旦我修复了从'nginx -T'得到的未解决的问题,重新加载nginx,尤里卡!!这就解决了问题。
下面的配置对我有用。注意,我只设置client_max_body_size 50M;曾经,与别人所说的相反……
文件:/etc/nginx/conf.d/sites.conf
server {
listen 80 default_server;
server_name portal.myserver.com;
return 301 https://$host$request_uri;
}
server {
resolver 127.0.0.11 valid=30s;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
ssl_certificate /secret/portal.myserver.com.crt;
ssl_certificate_key /secret/portal.myserver.com.pem;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
server_name portal.myserver.com;
client_max_body_size 50M;
location /fileserver/ {
set $upstream http://fileserver:6976;
proxy_pass $upstream;
}
}
如果你尝试了上面的选项,没有成功,你也使用IIS (iisnode)托管你的节点应用程序,把这段代码放在web上。Config帮我解决了这个问题:
这里是参考资料:https://www.inflectra.com/support/knowledgebase/kb306.aspx
此外,您可以更改允许的长度,因为现在我认为它是2GB。根据你的需要修改它。
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648" />
</requestFiltering>
</security>
我正在设置一个开发服务器来使用我们过时的live服务器,我使用了完美的服务器- Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot和ISPConfig 3)
在经历了同样的问题后,我看到了这篇文章,但没有任何工作。我改变了每个推荐文件(nginx.conf, ispconfig. conf)中的值。Vhost, /sites-available/default,等等)
最后,在/etc/nginx/sites-available/apps中修改client_max_body_size。Vhost和重新启动nginx是什么把戏。希望它能帮助到其他人。