请求实体太大 apache

Posted

技术标签:

【中文标题】请求实体太大 apache【英文标题】:Request Entity Too Large apache 【发布时间】:2016-11-08 20:25:50 【问题描述】:

我在提交的表单中有 8000 个复选框。请不要告诉我这有多糟糕。

我的.htaccess

php_value post_max_size 20M
php_value max_input_vars 10000
php_value suhosin.get.max_vars 10000
php_value suhosin.post.max_vars 10000
php_value suhosin.request.max_vars 10000

我在提交表单时收到Request Entity Too Large 错误。

当我有 3000 个复选框时,它工作正常。我是否缺少更多设置,还是需要重新启动 apache 以外的服务?

旁白: 我使用

检查了我的帖子大小
 postsize = $("form").not("[type='file']").serialize().length;

结果是postsize == 165655

【问题讨论】:

您是否尝试过将输入变量的大小增加到 20000 左右?您的 8000 个复选框和其他一些表单元素可能超过了 10000 个限制。 刚刚试了一下,还是一样的错误。但是,当我第一次不得不增加 max_inputs 时,有太多的复选框并没有给我那个错误......它只是截断了没有错误的复选框。 devdocs.io/apache_http_server/mod/core#limitrequestbody @hjpotter92 我把LimitRequestBody 0 放在我的.htaccess 中,但它没有解决问题 @Phil 你能检查一下 Apache 服务器日志吗?如果是这样,请在此处粘贴相关行。 【参考方案1】:

在查看正确的日志文件后,请参阅 OP 中的 cmets,我发现 modsecurity 拒绝了发布请求,谷歌搜索帮助我找到了这个解决方案。

通过将以下内容添加到站点配置来增加大小允许,即etc/apache2/sites-available/[your_site.conf]

<IfModule mod_security2.c>
    SecRequestBodyNoFilesLimit 5242880
</IfModule>

我使用了一个任意大的数字,但您可以使用任何您觉得舒服的数字...您会增加 DOS 攻击的暴露/严重性以及大小。

【讨论】:

以上是关于请求实体太大 apache的主要内容,如果未能解决你的问题,请参考以下文章

请求实体太大 apache

Apache2 上的 nextcloud:请求实体太大

Apache 413请求实体太大而大字符串

413 请求实体太大 + Web 服务器连接已关闭 |错误 64

Nest.js - 请求实体太大 PayloadTooLargeError:请求实体太大

响应:413 请求实体太大