如何避免请求实体过大413错误


How to avoid Request Entity Too Large 413 error

如何避免这个413错误?

请求实体太大

请求的资源/serverpath/reports.php不允许POST请求中的请求数据,或者请求中提供的数据量超过了容量限制。

位于demo3.website_name端口80 的Apache服务器

因此,请任何人帮助设置php.ini,以及如何设置htaccess以允许覆盖状态

如何在NGINX中修复它?client_max_body_size

要解决此问题,需要增加client_max_body_size指令的值。此指令定义Nginx在HTTP请求中可接受的最大数据量。默认情况下,此值设置为1兆字节,这意味着如果您试图上传大于1兆字节的文件,您将收到错误413:请求实体过大页面。您可以在三个级别插入此指令:

  • 在http块中:这将为您的配置中的所有服务器和位置设置指令值

  • 在服务器块中:这将为一个特定服务器的所有位置设置指令值

  • 在位置块中:这将为特定服务器中的一个特定位置设置指令值

在这个例子中,我将把它插入到我的http块中,并将其设置为500兆字节:

http {
    client_max_body_size 500M; # allows file uploads up to 500 megabytes
    [...]
}

来源:http://cnedelcu.blogspot.com.ar/2013/09/nginx-error-413-request-entity-too-large.html

尝试在php.ini中查找以下行,并将其设置为所需的大小:

post_max_size = 25M

然后,您可以在.htaccess文件中设置它:

php_value post_max_size 25M

在Apache 2.4上,LimitRequestBody指令也值得一看。它可以按vhost进行配置,并进入<Directory>部分。

<VirtualHost *:80> 
  [...]
  <Directory "/var/www/public_html"> 
    [...]
    LimitRequestBody 33554432 
  </Directory> 
</VirtualHost> 

大小值以字节为单位。当我尝试了两个php.ini最大大小指令,但仍然出现错误时,这最终解决了我的问题。

php.ini有一个名为post_max_size的设置,默认情况下设置为8M(至少在Ubuntu上)。

如果您发布了大量数据,请考虑增加该值。

我从react本机应用程序上传文件-大文件,它抛出了提到的错误。我刚刚在位置添加了client_max_body_sizengnix配置中的指令,它开始工作。

ngnix配置路径-/etc/ngnix/sites可用,文件名为默认

server {
   listen         80 default_server;
   listen         [::]:80 default_server;
   root           /var/www/html;
charset utf-8;
   location / {
       proxy_pass http://localhost:3015;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
       client_max_body_size 500M; //<<=== HERE IT IS
   }
}

client_max_body_size 500M;它对我有用。