出现413请求实体太大错误提示的解决方案

有时候我们会遇到413请求实体太大错误(413 Request Entity Too Large)这个报错不太多见,但并不代表它不存在。错误的本质非常清晰,即客户端所请求的实体,比如上传的文件超出限制所致。既然知道这个错误的问题所在,那么我们需要做哪些应对措施以修复此报错就非常简单了。

这篇文章将详细说明该错误的本质及提出错误修复的解决方案:

什么是413 Request Entity Too Large

413 Request Entity Too Large当从客户端作出的请求是过大,由Web服务器进行处理会出现误差。如果您的Web服务器设置了特定的HTTP请求大小限制,客户端可能会遇到413 Request Entity Too Large响应。可能导致此错误的示例请求是,如果客户端尝试将大文件上传到服务器(例如,大媒体文件)。

它取决于您使用的Web服务器的类型,这将决定您需要配置哪个指令。无论您是要限制用户将过大的文件上传到您的Web服务器,还是要增加上传大小限制,以下部分将说明如何操作。

修复413 Request Entity Too Large错误

根据您使用的Web服务器,实施下面描述的必要更改以配置您的Web服务器的最大HTTP请求大小限额。通过这样做,您可以设置允许客户端上传的阈值文件大小,如果超过该限制,他们将收到一个413 Request Entity Too Large状态。

Nginx

对于Nginx用户,决定允许的HTTP请求大小的指令是client_max_body_size. 该指令可能已经在您的Nginx.conf文件(/etc/nginx/nginx.conf)中定义。但是,如果不是,您可以在http, server或者location块中添加该指令并定义一个值。

server {
client_max_body_size 100M;
...
}

该指令的默认值为1M(1 兆字节)。如果您不希望有请求大小限制,您可以将该值设置为0

设置所需的值后,保存更改并通过运行以下命令重新加载Nginx:

service nginx reload

Apache

对于Apache Web服务器,有一个名为LimitRequestBody的类似指令。该指令提供的功能与client_max_body_size您能够限制HTTP请求的大小相同LimitRequestBody指令可以在您的http.conf文件或.htaccess文件中定义。Apache中此指令的默认值是0,但是,您可以将此值设置为您喜欢的任何值(该值以字节表示)。

例如,如果您想限制大于100 MB的请求,您可以使用以下内容。

LimitRequestBody 104857600

完成更改后,保存配置文件并使用以下命令重新加载 Apache:

service apache2 reload

附加配置 – PHP用户

除了修改Web服务器上的相应指令外,PHP用户还需要进行一些其他更改。首先,您需要打开php.ini文件,该文件很可能位于类似于/etc/php5/fpm/php.ini(取决于您的PHP版本)的目录中。接下来,您需要找到并修改以下指令:

  • upload_max_filesize定义上传文件的最大允许大小(默认为 2 MB)。
  • post_max_size定义了PHP将接受的POST最大数据大小。此设置还会影响文件上传(默认为8MB)。

一旦上述指令被修改,以反映所需的容许HTTP请求大小,简单地保存配置并重新加载PHP-FPM通过运行下面的命令:

service php-fpm restart
千百度
© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容