今天在提交一个比较大的blog时出现请求体过大的nginx错误,现在讲一系列解决过程记录下来。
1、nginx请求 413 Request Entity Too Large 错误
经过搜索,发现是nginx 的上传大小超限导致,解决方法如下
打开nginx主配置文件nginx.conf,一般在/usr/local/nginx/conf/nginx.conf这个位置,找到http{}段,修改或者添加代码如下复制代码
client_max_body_size 2m;
然后重启nginx,
代码如下复制代码
/etc/nginx/sbin/nginx -s reload2、第一步解决后php大小限制可能还会超限,需要进行设置
php.ini中的如下值的最大值差不多或者稍大,这样就不会因为提交数据大小不一致出现错误。代码如下复制代码
post_max_size = 2M
upload_max_filesize = 2M
3、如果内部使用Apache作为服务器的话,又可能被apache拦截掉
需要设置虚拟网站内的LimitRequestBody选项
4、也有可能由于提交数据较大导致php处理或者input超时,需要设置如下选项
php.ini:max_execution_time = 30 ;Maximum execution time of each script, in secondsphp.ini:max_input_time = 60 ;Maximum amount of time each script may spend parsing request data
php.ini:upload_max_filesize所上传的文件的最大大小。默认值2M。php.ini:memory_limit本 指令设定 了一个脚本所能够申请到的最大内存字节数,默认值8M。如果不需要任何内存上的限制,必须将其设为 -1。如果内存不够,则可能出现错误:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)(一般导入数据库时,如果数据库太大,就会报错,改这个就可以)php.ini:post_max_size设定POST数据所允许的最大大小。此设定也影响到文件上传。要上传大文件,该值必须大于 upload_max_filesize。
5、以上全部设置完成基本就可以,最后一个错误可能是你服务器网站里的上传限制了,如果还超过大小设置一下网站上传限制就好
以上为解决过程,有如下参考: