修复Nginx报错client intended to send too large body: 388153 bytes
时间:2020-01-09 10:38:25 来源:igfitidea点击:
尝试使用Nginx Web服务器上传文件时出现以下错误:
2018/01/21 12:19:23 \[error\] 375#375: \*25019 client intended to send too large body: 388153 bytes,
如何解决此问题并允许文件上传最大10MB?
Nginx Web服务器中的client_max_body_size指令设置了客户端请求正文允许的最大大小,该大小在Content-Length请求标头字段中指定。
如果请求的大小超过配置的值,则会向客户端返回413(请求实体太大)错误。
您需要同时配置nginx和php(或其他应用)以允许上传大小。
让我们看看如何修复打算在Nginx服务器中发送太大bod的客户端。
如何修复旨在在Nginx中发送太大的正文错误的客户端
首先,您需要通过输入vi命令来编辑/etc/nginx/nginx.conf文件:
$ sudo vi /etc/nginx/nginx.conf
在http(服务器/位置)部分中,添加以下指令以将最大允许大小设置为10MB:
client_max_body_size 10M;
保存并关闭文件。
测试Nginx配置是否存在错误
运行以下命令:
$ sudo nginx -t
输出示例:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
如果没有错误,请重新启动Nginx Web服务器。
$ sudo systemctl reload nginx
或者
$ sudo service nginx reload
通过上传大文件来验证配置。
确保您也观看了nginx错误日志:
$ sudo tail -f /var/log/nginx/error.log
如何配置php以接受最大10MB的上传
编辑您的php.ini文件,并确保其中包含以下两行:
$ sudo vi /etc/php.ini
追加或编辑如下:
upload_max_filesize=10M post_max_size=10M
保存并关闭文件。
重新启动Nginx PHP-fpm服务:
$ sudo systemctl restart php-fpm
或者
$ sudo /etc/init.d/php-fpm restart
或者
# /usr/local/etc/rc.d/php-fpm restart
现在上传文件并进行测试。
总结
简而言之,您需要使用grep命令/egrep命令/tail命令在nginx.conf和php.ini中包含以下行:
$ grep client_max_body_size /etc/nginx/options.conf $ egrep 'upload_max_filesize|post_max_size' /etc/php/7.0/fpm/conf.d/99-custom.ini $ tail -f /var/log/nginx/error.log $ tail -f /var/log/nginx/php-fpm-error.log