2013-05-08 127 views
1

我有一个在POST请求中接受附件作为多部分表单数据的服务。我想限制服务器为防止滥用而接受的附件大小。Apache LimitRequestBody - 对SSL /二进制数据没有影响

但我不能让Apache LimitRequestBody配置参数工作。服务器allways接受我的请求 - 不管我配置什么。我期望在超过请求大小时抛出HTTP 413。

我的设置:负载平衡器 - >阿帕奇(v2.2.12) - >码头

这里是我的Apache配置:

Listen 11443 

<VirtualHost _default_:11443> 
    LimitRequestBody 102400 
    LimitXMLRequestBody 102400 

    <Location /one/myapp> 
     LimitXMLRequestBody 102400 
     LimitRequestBody 102400 
     SetEnv proxy-sendcl 1 
     ProxyPass http://localhost:8080/myapp 
     ProxyPassReverse http://localhost:8080/myapp 
     Order Deny,Allow 
     Allow from all 
    </Location> 

    ProxyPass /one http://localhost:8080 
    ProxyPassReverse /one http://localhost:8080 

    SSLEngine on 
    SSLCertificateFile  ...host.cer 
    SSLCertificateKeyFile ...host.key 
    SSLCertificateChainFile ...host.crt 
    SSLProxyEngine on 

</VirtualHost> 

安装有(其中包括)MOD-SSL和MOD的QoS 。

我的要求是这样的:

POST https://myhost.com/one/myapp/myressource HTTP/1.1 
Accept-Encoding: gzip,deflate 
Authorization: ... 
Accept-Language: en_US 
Content-Type: multipart/form-data; boundary="----=_Part_16_248..." 
MIME-Version: 1.0 
User-Agent: Jakarta Commons-HttpClient/3.1 
Host: myhost.com 
Content-Length: 5760260 


------=_Part_16_248... 
Content-Type: application/octet-stream; name=data.raw 
Content-Transfer-Encoding: binary 
Content-Disposition: form-data; name="file"; filename="data.raw" 

... (binary data) ... 

为什么LimitRequestBody没有我的情况下工作吗?

回答