如何修复 “413 Request Entity Too Large” 错误
在构建和维护网站时,我们一定会在这里和那里遇到一些意想不到的 HTTP 错误。 此类问题很难避免,有些问题比其他问题更难解决。
如果遇到“413 Request Entity Too Large”错误,好消息是这个问题可以快速简单地解决——我们只需要重新配置一些服务器。 不,不需要成为技术专家。 让我们学习一下。
什么是 413 Request Entity Too Large 错误?
当客户端请求的大小超过服务器的文件大小限制时,会出现 413 HTTP 错误代码。 这通常发生在客户端尝试将大文件上传到 Web 服务器时,服务器会以 413 错误响应以提醒客户端。
Web 服务器对上传设置大小限制,以防止用户压倒服务器并超出存储权限。 这个限制通常不是问题,常见的网站文件应该在它之下。 但是,特别是大文件上传可能偶尔会超出限制,导致这样的消息:
虽然我们可以减小上传文件的大小以规避错误,但也可以通过一些服务器端修改来更改文件大小限制。
如何修复 413 Request Entity Too Large 错误
我们的默认上传大小限制将取决于服务器的设置方式。 在本篇文章中,我们将向大家展示如何通过增加 WordPress 设置以及 Apache 或 Nginx 服务器配置的大小限制来修复 413 错误。
所有方法都需要对服务器文件进行一些编辑,因此我们建议在尝试以下步骤之前创建备份。
WordPress
主题和插件是 WordPress 内容管理系统出现 413 错误的常见原因。 幸运的是,有几种方法可以将 WordPress 上传大小限制增加到足以让这些较大的文件通过。 只要不超出托管计划的限制,我们可以尝试以下任何一种方法:
修改 PHP.ini
增加上传限制的最简单方法是修改服务器的 PHP.ini
文件。 根据实际情况更改以下参数的值:
- max_execution_time (最大上传时间,以秒为单位)
- upload_max_filesize (最大上传大小,以兆字节为单位)
- post_max_size (最大post大小,以兆字节为单位)
修改 .htaccess
如果 WordPress 站点托管在 Apache 服务器上,也可以通过 .htaccess
增加服务器的限制,该文件包含许多服务器指令。 请参阅下面的解决方案。
修改 functions.php
也可以尝试通过当前 WordPress 主题的 functions.php
文件来增加大小限制。
如果想让此更改永久生效,我们建议大家先尝试上述方法。 使用这种方法,大家需要在更新或更改当前主题时更新 functions.php
。
复制下面的代码并将其粘贴到文件末尾
@ini_set( ‘upload_max_size’ , ’64M’ );
@ini_set( ‘post_max_size’, ’64M’);
@ini_set( ‘max_execution_time’, ‘300’ );
此代码将 WordPress 上传和发布的最大允许大小设置为 64 兆字节。 如果需要,大家可以将此数字更改为更大或更小,只要不超过托管计划的存储限制。
它还将上传可以花费的最长时间设置为 300 秒。 也可以随意更改。
Nginx 服务
可以在文件 nginx.conf
中修改 Nginx 服务器设置。 打开此文件并检查指令 client_max_body_size
。 然后,将值(以兆字节为单位)更改为最大文件大小。
如果 nginx.conf
中没有看到此指令,可以将其添加到 server 、location 或 http 块的末尾,如下所示:
server {
...
client_max_body_size 64M;
}
这允许上传 64 兆字节。 将此数字按照自己的需要进行设置,保存文件,然后重新加载 Nginx 以使更改生效。
Apache 服务
通过更新 .htaccess
文件来更改 Apache 服务器的大小限制,如下所示:
将以下代码复制并粘贴到 .htaccess
文件的底部:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
这样做会将 WordPress 上传和发布的最大允许大小设置为 64 兆字节,并将最大文件上传时间设置为 300 秒。 可以根据自己的实际情况更改这两个值。
依然会有 413 错误?
尝试上述一种或多种解决方案后,在上传大文件时仍可能遇到 413 错误,即使这些文件低于我们的新大小限制。
在这种情况下,问题可能源于 CDN 的服务器或我们的托管服务提供商设置的其他限制。首先,联系托管支持,详细说明问题以及我们迄今为止为解决问题所采取的步骤。可能是在没有意识到的情况下超出了计划的文件大小限制。或者,配置可能无意中导致了另一个错误。
如果使用 CDN 来提高站点的性能,这也可能是大家自己的问题的原因 - 用的 CDN 服务器可能会施加太小的文件大小限制。由于您可能无法直接修改这些服务器的文件,因此请查阅 CDN 提供商的文档或联系产品支持以解决错误。
如果一切都失败了,请考虑上传替代文件、减小当前文件的大小或升级存储计划。如果大家发现自己需要上传大量数据,则很可能有解决方法。
修复 413 错误
虽然 HTTP 错误可能令人沮丧,但许多错误都可以很快解决,包括 413。通过现在找到并解决此问题,我们在构建网站时将少担心一件事。 如果网站允许用户上传他们自己的内容,那么更改上传大小限制也可以解决这个问题——只要确保没有超出托管计划设置的限制即可。
至于最佳选择,我们建议 WordPress 用户尽可能先修改其服务器的 PHP.ini
文件。 否则,请选择与自己的服务器软件匹配的选项。
相关文章
Node.js 中的 HTTP 发送 POST 请求
发布时间:2023/03/27 浏览次数:187 分类:Node.js
-
在本文中,我们将学习如何使用 Node.js 使用第三方包发出发送 post 请求。
Angularjs 使用 HTTP Post 发送数据
发布时间:2023/03/24 浏览次数:97 分类:Angular
-
本教程重点介绍如何使用 Angular 中的 http.post() 函数将数据发送到服务器。
如何在 Go 中重用 Http 连接
发布时间:2023/01/17 浏览次数:139 分类:Go
-
HTTP 1.1 协议支持 HTTP 持久连接,也称为 HTTP Keep-Alive 。 这允许客户端和服务器在发送多个 HTTP 请求/响应时重新使用相同的底层 TCP 连接。 因此,客户端不是为每个 HTTP 请求建立连接,而
Golang httptest 的示例
发布时间:2023/01/17 浏览次数:139 分类:Go
-
当我第一次了解到它的 HTTP 测试包时,Go (Golang) 给我留下了深刻的印象。 在其他编程语言中,我习惯于做很多测试 HTTP 服务器的工作。 在 Go (Golang) 中,情况并非如此。 有一个很棒的测
Golang Http Server 的示例
发布时间:2023/01/16 浏览次数:184 分类:Go
-
Golang 在其标准库中直接提供了一个可用于处理 http 协议的包。 net/http 包。 在这篇文章中,我们将探索 net/http 包的功能以及我们如何使用它来运行我们自己的 http 服务器。 我们要查看
Golang httptrace 的示例
发布时间:2023/01/16 浏览次数:238 分类:Go
-
httptrace 包是从 Go1.7 开始包含在 Go (Golang) 标准库中的新包。 如果我们想要监控 http 请求的性能,或者如果我们想要收集和监控有关我们的 http 客户端的统计信息,该包将非常有用。 主