昨天用wordpress发布文章,文章内容是一个网站一段时间来的运行信息,20几页的列表结果粘到编辑器。

点击发布后,页面卡住了,过了一会返回浏览器显示“413 Request Entity Too Large”。

第一感觉就是文章内容太多,超过了nginx配置的限制,

看了一下nginx.conf发现没有设置client_max_body_size,这个参数默认只是1M,也就是说发布的文章内容大小不能超过1M

解决办法:

增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制

#设置允许发布内容为8M
client_max_body_size 8M;
client_body_buffer_size 128k;

另外如果运行的是php,那么还要检查php.ini,这个大小client_max_body_size要和php.ini中的如下值的最大值一致或者稍大,这样就不会因为提交数据大小不一致出现的错误。

post_max_size = 8M
upload_max_filesize = 6M

修改完配置后,别忘记重新加载。

虽然这样修改能解决一般问题,相信大家都会问post_max_size 和 upload_max_filesize 之间关系是什么?

从字面含义看一个是上传文件最大值upload_max_filesize,一个是通过POST提交数据的最大值post_max_size ,一般在php中用的是POST方式上传。

所以php.ini中设置 memory_limit > post_max_size > upload_max_filesize

当上传大文件时为了防止网速慢时超时现象,需要适当调大max_execution_time的值。