HTTP错误:413请求实体太大

我拥有的:
我有一个iPhone应用程序发送HTTP POST请求(XML格式)到用PHP编写的Web服务。 这是在托pipe的虚拟专用服务器上,所以我可以编辑服务器上的httpd.conf和其他文件,并重新启动Apache。

问题:
只要请求不太大,Web服务就能正常工作,但是大约1MB是极限。 之后,服务器回应:

 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>413 Request Entity Too Large</title> </head><body> <h1>Request Entity Too Large</h1> The requested resource<br />/<br /> does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit. </body></html> 

Web服务写入自己的日志文件,我可以看到小消息处理正常。 更大的消息根本就没有logging,所以我想在Apache到达Web服务之前,Apache会拒绝它们?

我试过的东西没有成功:
(每次更改后我都重新启动Apache,这些步骤是增量式的。)

  1. 托pipe提供商的基于Web的configuration面板:禁用mod_security
  2. httpd.conf: LimitXMLRequestBody 0LimitRequestBody 0
  3. httpd.conf: LimitXMLRequestBody 100000000LimitRequestBody 100000000
  4. httpd.conf: SecRequestBodyLimit 100000000

在这个阶段,Apache的error.log包含一条消息:
ModSecurity: Request body no files data length is larger than the configured limit (1048576)

ModSecurity有一个错误陈述的事实表明我的第一步并没有真正采取。 Apache的access.log看起来像这样,有3个成功的小消息和2个失败的大消息:

 "POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0" "POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0" "POST / HTTP/1.1" 200 310 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0" "POST / HTTP/1.1" 413 464 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0" "POST / HTTP/1.1" 413 464 "-" "Audiopad/1.0 CFNetwork/548.0.4 Darwin/11.0.0" 

Apache的error.log有关于大消息的这个信息:

 [error] [client 194.24.138.43] ModSecurity: Request body no files data length is larger than the configured limit (1048576). [hostname "webservice-audiopad.golfbravo.net"] [uri "/"] [error] [client 194.24.138.43] ModSecurity: Request body no files data length is larger than the configured limit (1048576). [hostname "webservice-audiopad.golfbravo.net"] [uri "/"] 

但是,我没有看到httpd.conf任何地方的值1048576

还有什么可以尝试,让Web服务接收大量的消息?

  • 将分享托pipe工作为我的情况?
  • NetBSD会是Web服务器的不错select吗?
  • PHP安全模式=closuresVPS的风险,是否影响所有的网站,如果“closures”
  • 首先请求一段时间后总是慢 - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS
  • 为什么在防火墙阻止所有传入和传出连接时,ping工作?
  • 辅助IP(eth0:0)就像主服务器IP一样
  • 3 Solutions collect form web for “HTTP错误:413请求实体太大”

    我现在设置SecRequestBodyAccess Off ,并解决了所有问题。

    我遇到了同样的问题。

    SecRequestBodyNoFilesLimit是原因。

    它并没有在我的configuration中使用,但它有一个默认值,1048576。

    一旦我发现这个设置存在,我把它设置得比我的文件大,一切正常。

    这里是文档https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-SecRequestBodyNoFilesLimit

    如果您比较SecRequestBodyLimit上面的条目,文档似乎非常复杂。 我能把它煮沸的是这个; 如果您正在上载实际的文件附件,则以前的设置将会被规定。 如果您将文件的内容粘贴到表单中,并且有效内容位于PUT中,则SecRequestBodyNoFilesLimit规则。

    你说这是一个PHP服务,所以这意味着php.ini和httpd.conf一样有效。

    在php.ini中定义了一些大小限制,包括对请求大小的限制,所以我将首先validation这些限制是否足够满足您的需求。

    服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器.