HTTP 错误 413.1 - Request Entity Too Large错误的解决方法
最可能的原因:
Web 服务器拒绝为请求提供服务,因为该请求实体过大。
Web 服务器无法为请求提供服务,因为它正尝试与客户证书进行协商,但请求实体过大。
请求 URL 或者到 URL 的物理映射(即,到 URL 的内容的物理文件系统路径)过长。
PHP配置修改
php默认的文件上传限制一般是2M。修改方法如下:
打开php.ini,把 upload_max_filesize 和 post_max_size 修改为100M,然后重启。
Nginx服务器
原因是请求实体太长了。一般出现种情况是Post请求时Body内容Post的数据太大了
如上传大文件过大; 如POST数据比较多
处理方法修改
nginx.conf
的值就可以解决了。
client_max_body_size 2M 改为
client_max_body_size 10M
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者有区别
设置到http{}内,控制全局nginx所有请求报文大小
设置到server{}内,控制该server的所有请求报文大小
设置到location{}内,控制满足该路由规则的请求报文大小
Apache服务器
可能的原因
1、请求的URL过长,改为POST
2、POST数据过大,修改php.ini参数:post_max_size = 20M,upload_max_filesize = 20M
3、返回的数据过大,修改httpd.conf:
SetOutputFilter PHP
SetInputFilter PHP
LimitXMLRequestBody 20971520
LimitRequestBody 20971520
IIS服务器(Windows Server 系统IIS)
步骤一:编辑C:\Windows\System32\inetsrv\config下的applicationHost.config文件,找到自己项目的location项,在system.webServer下添加如下代码:
<serverRuntime uploadReadAheadSize="1048576000" />
uploadReadAheadSize单位为(B:bytes),这里1048576000 = 1000M,实际大小按需求设置。完整结构如下:
<location path="EMWeb">
<system.webServer>
<serverRuntime uploadReadAheadSize="1048576000" />
</system.webServer></location>
步骤二:编辑网站项目根目录下的web.config配置文件,按节点顺序找到 configuration > system.web > httpRuntime 设置 maxRequestLength 属性,单位为(B:bytes),实际大小按需求设置,注:asp.net中默认上传限制是4M(4096KB)。代码如下:
<configuration>
<system.web>
<httpRuntime targetFramework="4.5" requestValidationMode="2.0" maxRequestLength="1048576000" />
</system.web></configuration>
步骤三:仍然是网站项目目录下的web.config配置文件,按节点顺序找到 configuration > system.webServer,添加以下代码:
<security>
<requestFiltering>
<!-- 1000 MB in bytes -->
<requestLimits maxAllowedContentLength="1048576000" />
</requestFiltering></security>
最后,重启IIS。
版权申明
本文系作者 @Tis-FYM 原创发布在Tis-FYI站点。未经许可,禁止转载。
暂无评论数据