我收到此消息,
Request Entity Too Large
The requested resource
/index.php
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit.
我设置
php_value post_max_size 50M
php_value upload_max_filesize 50M
在.htaccess
但没有帮助
如何克服这个?
由于
答案 0 :(得分:12)
在您完成PHP的memory_limit
,post_max_size
和upload_max_filesize
之后,我想向您推荐一些与该主题相关的文章,其中一篇可能会解决问题。
我在服务器故障上找到了这篇文章:
https://serverfault.com/questions/79741/php-apache-post-limit/79745#79745
sybreon 建议仔细检查Content-Length
,并引用 - “确保您直接连接到Apache,而不是通过代理或反向代理。一些反向代理会对请求的最大大小设置上限作为一种安全措施。因此,您可能需要检查该日志以及Apache日志,以确保没有其他任何事情发生。“< / em>
sybreon也发布了这个链接:Apache 413 error problems。
以下内容仅适用于如果您在Apache中启用了mod_ssl模块。 (否则此设置可能导致服务器崩溃。)
引用文章:
“我使用的是Apache SSL客户端证书,其限制为128K,如果必须重新协商,则更大的POST将失败。
This Bugzilla posting有线索 - 您必须将以下内容设置为SSL服务器的默认值,而不仅仅是目录。
SSLVerifyClient require
否则会强制进行某种重新协商,并因413错误而失败。“
上一篇文章还提到了LimitRequestBody指令 A guy says here that the appropriate setting of this directive solved his problem.
我希望其中一个设置可以解决这个问题!
答案 1 :(得分:9)
对我来说唯一有用的就是调整SSL缓冲区大小。你可以通过......设置它。
<Directory /my/blah/blah>
...
# Set this to something big...
SSLRenegBufferSize 10486000
...
</Directory>
...然后只需重启Apache即可使更改生效。 (发现于:http://forum.joomla.org/viewtopic.php?p=2085574)
答案 2 :(得分:4)
我的服务器是Apache。是mod_security模块,它阻止了大数据大约171 KB的帖子。 我在mod_security.conf中进行了以下配置
SecRequestBodyNoFilesLimit 10486000
SecRequestBodyInMemoryLimit 10486000
答案 3 :(得分:0)
如果已设置PHP中的max_post_upload和max_file_upload, 并且在Limit2.quest或ModSec配置文件中设置了LimitRequestBody设置足够高的设置
然后可能会有一个.htaccess文件。
2。制作或编辑.htaccess
3。编辑或创建一行 LimitRequestBody 20971520在其中。
保存.htaccess。设置权限。 (644和apache所有者)
可能会重启apache。
田田希望修复。
此设置仅设置此文件夹的限制 - 这是避免php和apache中的全局设置的一种方法,这会使您对大型数据包/加载DOS攻击开放。
LimitRequestBody 0为您提供无限制的上传。
答案 4 :(得分:0)
我一直在为413 –请求实体在最后一天左右遇到太大问题而苦苦挣扎,因为我试图将超大(以MB为单位)的图像上传到服务器。
我的设置是apache(227)将请求代理到jboss eap(6.4.20)服务器,以访问其余端点。
2件事对我有用。
在虚拟主机级别上需要SSLVerifyClient。这意味着所有资源都需要提供有效的客户端证书才能提供。这不是我的选择,因为/ api以外的所有资源都不应受到相互身份验证的保护。因此,虽然有效,但对我来说这不是一个选择。
我删除了所需的全局级别SSLVerifyClient并将其保持为“可选”。我仅在<Location /api>...</Location>
上启用了必需的选项。技巧是只有在达到特定阈值后才进行SSL重新协商-这将是我们期望的上传文件大小。
所以,最终,我不得不在特定的LocationMatch上启用“ SSLRenegBufferSize”设置,如下所示:
<LocationMatch ^/api/v1/path/(.*)/to/(.*)/resource/endpoint$>
SSLRenegBufferSize 5242880 #allow upto 5MB for files to come through
</LocationMatch>
(。*)表示端点中的路径参数。希望这会有所帮助。