最近在项目中,nginx服务器报错:413 Request Entity Too Large”。
一看就知道是网络请求中传递的某些数据大小超过了nginx的配置;
看了一下nginx.conf发现client_max_body_size的值偏小,只有2M,也就是说
解决办法:
增加如下两行到nginx.conf的http{}段, 增大nginx上传文件大小限制:
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的值。
php.ini中还有几个max的limit参数,如:
max_execution_time 600 每个PHP页面运行的最大时间值(秒),默认30秒
max_input_time 600 每个PHP页面接收数据所需的最大时间,默认60秒
memory_limit 8m 每个PHP页面所吃掉的最大内存,默认8M
使用的时候多注意;
通过在实践中遇到问题,然后多总结是自我提高的有效途径;